@qwen-code/qwen-code 0.21.6-preview.0 → 0.21.7
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 +19 -9
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +1 -1
- package/bundled/qc-helper/docs/features/channels/github.md +31 -19
- package/bundled/qc-helper/docs/features/code-review.md +30 -1
- package/bundled/qc-helper/docs/qwen-serve.md +1 -1
- package/bundled/review/SKILL.md +59 -22
- package/chunks/{MaxSizedBox-A3UYJS6B.js → MaxSizedBox-ANWZBPTS.js} +38 -38
- package/chunks/{StandaloneSessionPicker-NGLY26I4.js → StandaloneSessionPicker-XKS3VU3A.js} +56 -55
- package/chunks/{acp-startup-profiler-3RICG2YW.js → acp-startup-profiler-ORIQ2CCQ.js} +2 -2
- package/chunks/{acpAgent-V54T2EEL.js → acpAgent-KUAZ3GCZ.js} +1091 -150
- package/chunks/{agent-2P53VL2L.js → agent-T6PTGX5R.js} +35 -35
- package/chunks/{agent-headless-6X4GCFRD.js → agent-headless-PR7YCB7S.js} +35 -35
- package/chunks/{anthropicContentGenerator-3CAHEZBM.js → anthropicContentGenerator-DTMVEL5M.js} +7 -7
- package/chunks/{artifact-tool-RROCCJDA.js → artifact-tool-U4VOZIK5.js} +2 -2
- package/chunks/{askUserQuestion-2EPPBPUZ.js → askUserQuestion-XOBQLPFA.js} +2 -2
- package/chunks/{bridge-TCFMLKHR.js → bridge-NU6YEEHK.js} +41 -41
- package/chunks/{channel-management-service-5XPPTWUQ.js → channel-management-service-FSQ7SHYI.js} +1 -1
- package/chunks/{channel-settings-store-B4HNMNQV.js → channel-settings-store-35VQVUVV.js} +42 -42
- package/chunks/{channel-worker-group-SVGPDH2C.js → channel-worker-group-JWQK224X.js} +5 -5
- package/chunks/{channel-worker-manager-72ZK2GTS.js → channel-worker-manager-77E3OXRQ.js} +5 -5
- package/chunks/{channel-worker-supervisor-NUEDVHX4.js → channel-worker-supervisor-62YWUGP2.js} +3 -3
- package/chunks/{chunk-XC656O42.js → chunk-22NBYCPD.js} +3 -3
- package/chunks/{chunk-WXS647W5.js → chunk-23RZCH76.js} +3 -3
- package/chunks/{chunk-O656RSMC.js → chunk-2U3WZGZG.js} +18 -10
- package/chunks/chunk-2VSTGY6M.js +107 -0
- package/chunks/{chunk-AU3XNTMV.js → chunk-33ACCIIY.js} +3 -3
- package/chunks/{chunk-MBEMTXQT.js → chunk-3K7FH2KQ.js} +1 -32
- package/chunks/{chunk-CJBRIJ7W.js → chunk-3NB7TSE2.js} +3 -3
- package/chunks/{chunk-QYPT3QUD.js → chunk-3ULCB3NE.js} +3 -3
- package/chunks/{chunk-7FUVSN4D.js → chunk-55LYDVPU.js} +1 -1
- package/chunks/{chunk-3ZRS2XNY.js → chunk-5KH532V7.js} +1 -1
- package/chunks/{chunk-P7LKADIT.js → chunk-6EOI4HOK.js} +7 -7
- package/chunks/{chunk-X6DV3WKN.js → chunk-6GONZVLS.js} +1 -1
- package/chunks/{chunk-T4XY5CT4.js → chunk-6HVUFDS2.js} +7 -7
- package/chunks/{chunk-5L6CQ4ZU.js → chunk-6M26GBKX.js} +2 -2
- package/chunks/{chunk-SPUDIAHX.js → chunk-6UWFTUQL.js} +530 -388
- package/chunks/{chunk-EKWNNQQD.js → chunk-6XJMFJ4D.js} +16 -10
- package/chunks/{chunk-72DZPDH4.js → chunk-6XU3PH66.js} +10 -5
- package/chunks/{chunk-WIPQR44Y.js → chunk-72LNFGUY.js} +3 -3
- package/chunks/{chunk-33FNCQSY.js → chunk-7MH4J33A.js} +2 -2
- package/chunks/{chunk-2AGOQ7QO.js → chunk-7UFKAV7Y.js} +118 -6
- package/chunks/{chunk-HKNSU4WX.js → chunk-AE77C5ZU.js} +198 -35
- package/chunks/{chunk-JELIWHXD.js → chunk-AOHJKPKL.js} +1 -1
- package/chunks/{chunk-GLNBDYUX.js → chunk-AXMWHKXA.js} +6 -2
- package/chunks/{chunk-H36SETQS.js → chunk-B2GJNDTV.js} +1 -1
- package/chunks/{chunk-QMBEW7EW.js → chunk-BGG4MBYD.js} +2 -2
- package/chunks/{chunk-QL4TN4HS.js → chunk-BRVWYMKV.js} +1 -1
- package/chunks/{chunk-6WBWIPBF.js → chunk-BVWVWGLE.js} +2 -2
- package/chunks/{chunk-WPKIU4PA.js → chunk-CB2464BK.js} +6 -6
- package/chunks/{chunk-2UISUFHQ.js → chunk-CJXIIILK.js} +3 -3
- package/chunks/{chunk-WK4TJUEA.js → chunk-CKASRHZI.js} +1 -1
- package/chunks/{chunk-Z7JILXGX.js → chunk-CNIID3TV.js} +3 -3
- package/chunks/{chunk-6KEN3RIC.js → chunk-CSZEXZBE.js} +3 -3
- package/chunks/{chunk-KKN2IE7Q.js → chunk-CTJLZLB5.js} +1 -1
- package/chunks/{chunk-5CDI4UOY.js → chunk-CXE7E23H.js} +131 -48
- package/chunks/{chunk-URJHXOSO.js → chunk-CYR3HI5X.js} +3 -3
- package/chunks/{chunk-546CDN6D.js → chunk-DBOFL3LQ.js} +3 -3
- package/chunks/{chunk-4LKVQFHM.js → chunk-DREZZAZM.js} +2 -2
- package/chunks/{chunk-2U7GPHA6.js → chunk-E33LOKRA.js} +1 -1
- package/chunks/{chunk-2DNKEBXY.js → chunk-EI3HZX6C.js} +1 -1
- package/chunks/{chunk-U25CMJYY.js → chunk-EKPKKXY2.js} +1 -1
- package/chunks/{chunk-QG2ACINA.js → chunk-EORNAQDT.js} +1 -1
- package/chunks/{chunk-432XCUHF.js → chunk-EQL65XGA.js} +1 -1
- package/chunks/{chunk-TYERNYH4.js → chunk-EUNWC2VS.js} +2 -2
- package/chunks/{chunk-CDHNGCJI.js → chunk-EUQTXRKZ.js} +7 -7
- package/chunks/{chunk-UH7Z7Y45.js → chunk-FOGU3LJX.js} +1 -1
- package/chunks/{chunk-BU4BRCPX.js → chunk-FPM27XN4.js} +5 -5
- package/chunks/{chunk-E4WHKETF.js → chunk-FVKHVJZQ.js} +2 -49
- package/chunks/{chunk-NKST54XA.js → chunk-FZBZSYKU.js} +1 -1
- package/chunks/{chunk-XZCMQUOF.js → chunk-GDXET5XU.js} +31 -3387
- package/chunks/{chunk-A5YZ3FA2.js → chunk-GM463R2B.js} +1 -1
- package/chunks/{chunk-MOHAWIAW.js → chunk-GNPNYXJB.js} +2 -2
- package/chunks/{chunk-AFZTZLFB.js → chunk-GSS34377.js} +3 -3
- package/chunks/{chunk-MVLM6PJK.js → chunk-H2UQ2M5Z.js} +6 -2
- package/chunks/{chunk-BK2UNYWD.js → chunk-HIBNSEJE.js} +12 -0
- package/chunks/{chunk-CXYBX4AL.js → chunk-HQB2KUAN.js} +1 -1
- package/chunks/{chunk-ZQL73PPE.js → chunk-HYRDKNUY.js} +2 -2
- package/chunks/{chunk-D7D7RXIJ.js → chunk-IC4Z6LX6.js} +1 -1
- package/chunks/{chunk-HU5TUALO.js → chunk-IIJEYBNH.js} +3 -3
- package/chunks/{chunk-DTAPI453.js → chunk-IUFV6FYU.js} +2 -2
- package/chunks/{chunk-MISUEWB4.js → chunk-J6SZID63.js} +12 -8
- package/chunks/{chunk-OWAK7LMW.js → chunk-KGJGEEVR.js} +7 -0
- package/chunks/{chunk-BFHXDAR7.js → chunk-KKBPOU75.js} +1 -1
- package/chunks/{chunk-XOZ2R6XI.js → chunk-KKJJB5X6.js} +3578 -1487
- package/chunks/{chunk-PQTK2FVO.js → chunk-KR4ZSC7K.js} +4 -4
- package/chunks/{chunk-NAYPZ72V.js → chunk-KXSDEOFU.js} +1 -1
- package/chunks/{chunk-MGSSJT27.js → chunk-L4N6TIP7.js} +5 -3
- package/chunks/{chunk-4T6QMNX2.js → chunk-LA7YLSR6.js} +185 -12
- package/chunks/{chunk-4E5PO6R7.js → chunk-LEMXGVEP.js} +4 -4
- package/chunks/{chunk-WVAESIM6.js → chunk-LZC3B5N2.js} +4 -4
- package/chunks/{chunk-6O5DVH27.js → chunk-M6HMMKVG.js} +1 -1
- package/chunks/{chunk-Z5S6KH2B.js → chunk-MAJS7AT4.js} +6 -6
- package/chunks/{chunk-XNZBXQCG.js → chunk-MKVZE4ZJ.js} +1 -1
- package/chunks/{chunk-I7JDGNG6.js → chunk-MVUQRLOH.js} +9 -5
- package/chunks/{chunk-GLWP3FDB.js → chunk-MZSJ43WV.js} +31 -2
- package/chunks/{chunk-ZPPP6VCL.js → chunk-NG2R4N5O.js} +1 -1
- package/chunks/chunk-NKLP3DCK.js +22 -0
- package/chunks/{chunk-WIRAPZ62.js → chunk-NLREQJFK.js} +7 -1
- package/chunks/{chunk-N47ZM2KI.js → chunk-OFI7IGST.js} +12 -12
- package/chunks/{chunk-DBIEZC7T.js → chunk-OH2VKQXH.js} +42 -16
- package/chunks/{chunk-C4GRKMUL.js → chunk-OHJLEW5J.js} +5 -5
- package/chunks/{chunk-3RXUYQJI.js → chunk-OIVKILPI.js} +49 -0
- package/chunks/{chunk-VDLXPEI5.js → chunk-OMKQH5C5.js} +3 -3
- package/chunks/{chunk-LBWNSLJK.js → chunk-ONSZH6VM.js} +2 -2
- package/chunks/{chunk-DYA25Y7U.js → chunk-OWMAZHIX.js} +1 -1
- package/chunks/{chunk-WAOLM6SQ.js → chunk-P2AJ7FTI.js} +1 -1
- package/chunks/{chunk-MFBUJMQ3.js → chunk-P3LEG54R.js} +4 -4
- package/chunks/{chunk-WVRJKSIG.js → chunk-PJOBIWUG.js} +1 -1
- package/chunks/{chunk-YUVTZ4UH.js → chunk-PQBHU2IA.js} +114 -18
- package/chunks/{chunk-GTM6IHBB.js → chunk-Q3JQ7OSU.js} +2 -1
- package/chunks/{chunk-IISDPZ5X.js → chunk-QETYKPMG.js} +1 -1
- package/chunks/{chunk-UKZEXS6K.js → chunk-R574ATRM.js} +11 -0
- package/chunks/{chunk-DOICUTPO.js → chunk-RERATVSK.js} +11 -10
- package/chunks/chunk-RGSBTHSU.js +3381 -0
- package/chunks/{chunk-6D6V55ZQ.js → chunk-RMH5OWLD.js} +1 -1
- package/chunks/{chunk-AVDEBBMI.js → chunk-RNVQB725.js} +2 -2
- package/chunks/{chunk-QWUYFMAR.js → chunk-RUL4S3K3.js} +87 -67
- package/chunks/{chunk-RTWF7FF7.js → chunk-RZHU3ILK.js} +5 -5
- package/chunks/{chunk-3DTM3RPU.js → chunk-S7CV4KO6.js} +3 -3
- package/chunks/{chunk-ZH7G3A4U.js → chunk-SCI7K3GM.js} +4 -4
- package/chunks/{chunk-YAVY33G4.js → chunk-SEZ556DZ.js} +1 -1
- package/chunks/{chunk-6KZP75GT.js → chunk-SHZYHGQH.js} +1 -1
- package/chunks/chunk-SOORFWKY.js +155 -0
- package/chunks/{chunk-NYZAL2W2.js → chunk-SPMY6CX6.js} +4 -4
- package/chunks/{chunk-EHMN6SEG.js → chunk-TDXGKHDN.js} +4 -4
- package/chunks/{chunk-XKTCA6BW.js → chunk-TLV2IMHR.js} +5 -5
- package/chunks/{chunk-XSGQKR37.js → chunk-TRLYP7OF.js} +358 -20
- package/chunks/{chunk-DG563ZCS.js → chunk-TYKC75AX.js} +3 -3
- package/chunks/{chunk-KVUBYJDM.js → chunk-TZEZYNYD.js} +1 -1
- package/chunks/{chunk-XC2VAFVZ.js → chunk-UVX4Y6IN.js} +1 -1
- package/chunks/{chunk-IKXE3AAC.js → chunk-VOARQPTA.js} +2 -2
- package/chunks/{chunk-TVFC3XF5.js → chunk-W4B7UBUS.js} +7 -7
- package/chunks/{chunk-M744OFVE.js → chunk-W7U4ESW2.js} +1 -1
- package/chunks/{chunk-URN76TKR.js → chunk-WCG5O7IP.js} +2 -2
- package/chunks/{chunk-A6SX5TAH.js → chunk-XCWO3SMQ.js} +9 -5
- package/chunks/{chunk-FDV3CXTD.js → chunk-Y4EWSQF7.js} +3 -3
- package/chunks/{chunk-3PRJYMXC.js → chunk-Y4NGLFGJ.js} +1 -1
- package/chunks/{chunk-DOA7MCDY.js → chunk-Y7E5LNLO.js} +973 -892
- package/chunks/{chunk-3LGZEYOF.js → chunk-YHEEE624.js} +2 -2
- package/chunks/{chunk-Y5HIDFKZ.js → chunk-YJQCUTT2.js} +4 -4
- package/chunks/{chunk-QONSRAEV.js → chunk-YP5KH5Y7.js} +1 -1
- package/chunks/{chunk-SQ3ZJOYL.js → chunk-ZJ3VGYHK.js} +20 -20
- package/chunks/{chunk-7GYP5COR.js → chunk-ZXU5UHMI.js} +1 -1
- package/chunks/{computer-use-GTOP2CVH.js → computer-use-KEAPATUY.js} +35 -35
- package/chunks/{config-utils-LIRO7NSU.js → config-utils-K7SCOWHD.js} +2 -2
- package/chunks/{contextCommand-K6T6RRF3.js → contextCommand-ZJA6A5K5.js} +38 -38
- package/chunks/{core-runtime-D2626QQU.js → core-runtime-QMJPWHCI.js} +35 -35
- package/chunks/create-sub-session-DJE6XICH.js +772 -0
- package/chunks/{create-sub-session-6EWLAZD5.js → create-sub-session-E4PBYXV5.js} +2 -2
- package/chunks/{cron-create-CCRIULJE.js → cron-create-GRBWYMIJ.js} +4 -4
- package/chunks/{cron-delete-FCFW6BGP.js → cron-delete-4CMKBR2M.js} +4 -4
- package/chunks/{cron-list-QDBVCHRF.js → cron-list-W7K4ASOA.js} +4 -4
- package/chunks/{daemon-CCIX4BMG.js → daemon-SCTQMM7Z.js} +165 -5
- package/chunks/{daemon-status-provider-2EHRZZVF.js → daemon-status-provider-FSWDPE2G.js} +45 -45
- package/chunks/{daemon-trust-policy-B3EPDJDR.js → daemon-trust-policy-P5L5VFAY.js} +41 -41
- package/chunks/{daemon-trust-policy-monitor-MFM5X26G.js → daemon-trust-policy-monitor-73JYN6ET.js} +41 -41
- package/chunks/{deferred-core-runtime-KXN7HLN7.js → deferred-core-runtime-BWRCCFTE.js} +35 -35
- package/chunks/discovery-XLHITE74.js +220 -0
- package/chunks/{display-image-GUJA352B.js → display-image-O2XFPQTC.js} +4 -4
- package/chunks/{dist-A7H2KKUC.js → dist-K4WWQBHS.js} +277 -98
- package/chunks/{dist-IKGVITP3.js → dist-KS4O2NKE.js} +99 -6
- package/chunks/{earlyInputCapture-WUNYYFOS.js → earlyInputCapture-L5ST23A6.js} +36 -36
- package/chunks/{edit-DMFCBP2D.js → edit-LHHRFNFK.js} +35 -35
- package/chunks/{enter-worktree-5SVBCXFC.js → enter-worktree-6NXCRZPF.js} +35 -35
- package/chunks/{enterPlanMode-QUIZFQ4M.js → enterPlanMode-ZVQT4U7D.js} +35 -35
- package/chunks/{environment-U6QP23VJ.js → environment-GJ2HWJOS.js} +38 -38
- package/chunks/{errors-GZWFA6ON.js → errors-6RLH3XXC.js} +38 -38
- package/chunks/{exit-worktree-FUB44KAF.js → exit-worktree-I2YLUHHY.js} +35 -35
- package/chunks/{exitPlanMode-XSHHYR73.js → exitPlanMode-7CCWKO7I.js} +35 -35
- package/chunks/{fast-path-JHQJSIMZ.js → fast-path-DVFD4HQD.js} +2 -2
- package/chunks/{gemini-O44ETOKT.js → gemini-7FWGOYD4.js} +78 -78
- package/chunks/{geminiContentGenerator-TTM4TZJM.js → geminiContentGenerator-V2WVLIXU.js} +6 -6
- package/chunks/{glob-YECOWTRW.js → glob-3N6GGI75.js} +35 -35
- package/chunks/{goal-tools-3AZKX5WQ.js → goal-tools-APOW6UXL.js} +3 -3
- package/chunks/{grep-BZO4LOTA.js → grep-V43ILZVX.js} +35 -35
- package/chunks/{handleAutoUpdate-TOO52D6H.js → handleAutoUpdate-A5WFVWIA.js} +40 -40
- package/chunks/{i18n-ARJYXZQ5.js → i18n-PLVQ4FBZ.js} +37 -37
- package/chunks/{image-gen-J6Q2YBEU.js → image-gen-7C6IK6DC.js} +9 -9
- package/chunks/{initializer-CEZ4RPQV.js → initializer-CVAIKZYL.js} +42 -42
- package/chunks/{installationInfo-AEGIIQAT.js → installationInfo-J6QDHNTK.js} +36 -36
- package/chunks/{keychain-token-storage-7BT4TQ2A.js → keychain-token-storage-TVAMTNP7.js} +2 -2
- package/chunks/{list-7XLPV5GC.js → list-ZZ4OUUWV.js} +44 -44
- package/chunks/{list-agents-GC4BRET7.js → list-agents-KFFIIS2G.js} +2 -2
- package/chunks/{loadedSettingsAdapter-YK5SBHOT.js → loadedSettingsAdapter-QRYRJSWL.js} +41 -41
- package/chunks/{loggingContentGenerator-I7QDXS43.js → loggingContentGenerator-OJCO75HM.js} +17 -17
- package/chunks/{loop-wakeup-SQQSBMEY.js → loop-wakeup-TLMJPMMP.js} +5 -5
- package/chunks/{ls-63CC3NNX.js → ls-UVVE2XGE.js} +4 -4
- package/chunks/{lsp-P6NVJVNT.js → lsp-QMEA2VLB.js} +2 -2
- package/chunks/{managed-npm-update-YSL7PA7G.js → managed-npm-update-PCOSCP2N.js} +48 -39
- package/chunks/{mcp-RKFQZXP6.js → mcp-M3WKKWKY.js} +41 -41
- package/chunks/{monitor-QHHJIKGL.js → monitor-GN24FH6C.js} +35 -35
- package/chunks/{nonInteractiveCli-XEBIE7MG.js → nonInteractiveCli-KPTU3VSQ.js} +75 -75
- package/chunks/{notebook-edit-SG7X2EQA.js → notebook-edit-4YM65BBO.js} +35 -35
- package/chunks/{openaiContentGenerator-63CVR33K.js → openaiContentGenerator-EDQT6GTV.js} +19 -19
- package/chunks/{pidfile-I3CXJGQD.js → pidfile-JOIIRN2C.js} +36 -36
- package/chunks/{processUtils-LJ3DSANX.js → processUtils-5SV4MX3Q.js} +2 -2
- package/chunks/{qwenContentGenerator-JINBVCH6.js → qwenContentGenerator-ODRJSUGR.js} +40 -40
- package/chunks/{qwenOAuth2-SY2O3NRR.js → qwenOAuth2-NESCMZ47.js} +8 -8
- package/chunks/{read-file-PGTXF25I.js → read-file-HPSODLPK.js} +10 -10
- package/chunks/{read-mcp-resource-RTSSEER5.js → read-mcp-resource-2TNSJTC3.js} +2 -2
- package/chunks/{record-artifact-E6AWQU2Z.js → record-artifact-RAON52FC.js} +3 -3
- package/chunks/{resumeHistoryUtils-FB2NFVZ2.js → resumeHistoryUtils-TXCOFFMQ.js} +42 -41
- package/chunks/{ripGrep-IY3KGPM6.js → ripGrep-ZKQGTQAO.js} +35 -35
- package/chunks/{run-qwen-serve-UYEMGPKA.js → run-qwen-serve-ZPKPKECF.js} +516 -87
- package/chunks/{runtime-CG3BKRFE.js → runtime-2FLNNM36.js} +44 -44
- package/chunks/{scheduler-VFUVGDE5.js → scheduler-365PJHNR.js} +35 -35
- package/chunks/{sdk-exporters-http-IL2346MJ.js → sdk-exporters-http-KHAB5JSD.js} +2 -2
- package/chunks/{sdk-impl-SYKGVWOZ.js → sdk-impl-KD7FSTC3.js} +2 -2
- package/chunks/{send-message-TL6FIMMN.js → send-message-ZM7MRUGP.js} +5 -5
- package/chunks/{serve-ZCCQ2G2L.js → serve-QD2RNLKJ.js} +42 -42
- package/chunks/{server-WS7LWXPP.js → server-XLJVLTYM.js} +7952 -611
- package/chunks/{session-IQLCT32T.js → session-3VTUHH4Q.js} +78 -78
- package/chunks/{settings-NX4EUIE6.js → settings-KULVPCQC.js} +40 -40
- package/chunks/{shell-THDYM4CS.js → shell-3SWW22MH.js} +35 -35
- package/chunks/{skill-OXXZBNQB.js → skill-KDHWYS7W.js} +14 -14
- package/chunks/{skill-settings-T3JZ33T2.js → skill-settings-NMY4JEJC.js} +40 -40
- package/chunks/{spawnChannel-COLJMSA7.js → spawnChannel-ZKS4Q5OU.js} +37 -37
- package/chunks/{standalone-update-ICW7H5IF.js → standalone-update-7CXPGAQ4.js} +38 -38
- package/chunks/{startInteractiveUI-6BDRXSMF.js → startInteractiveUI-2QQLEKM6.js} +473 -233
- package/chunks/{stdioHelpers-HGIYTWAY.js → stdioHelpers-7A2EE64Z.js} +5 -3
- package/chunks/{syntheticOutput-BN7E626U.js → syntheticOutput-ZLCUTKO2.js} +3 -3
- package/chunks/{task-create-2X4UP4F3.js → task-create-CQP5UEA3.js} +9 -9
- package/chunks/{task-list-WOLJPZ64.js → task-list-XLEZOJXP.js} +5 -5
- package/chunks/{task-stop-TNXRNAL2.js → task-stop-7ZQM5CFF.js} +2 -2
- package/chunks/{task-update-VDUSN36E.js → task-update-JA75U2SN.js} +9 -9
- package/chunks/{team-create-BCSMDK4Z.js → team-create-2WTNGAOX.js} +35 -35
- package/chunks/{team-delete-D2VMSDOT.js → team-delete-MHY3UZGY.js} +5 -5
- package/chunks/{team-plan-approval-B5YRLJFV.js → team-plan-approval-LZTYLEG4.js} +35 -35
- package/chunks/{terminal-image-renderer-PW6Z6VFY.js → terminal-image-renderer-R5HHAFJN.js} +41 -36
- package/chunks/{theme-manager-CMVKD2JH.js → theme-manager-PAUCSJFF.js} +36 -36
- package/chunks/{todoWrite-MHWHO5UO.js → todoWrite-UPVOHYGD.js} +4 -4
- package/chunks/{tool-search-SQTUSG6P.js → tool-search-2BFCGLI6.js} +13 -13
- package/chunks/{total-session-admission-XAXOSE46.js → total-session-admission-MK4SINFK.js} +41 -41
- package/chunks/{trustedFolders-Z2UAEG2V.js → trustedFolders-TJ5S26N7.js} +37 -37
- package/chunks/{update-relaunch-JBLI6LJF.js → update-relaunch-N7AYLARF.js} +6 -6
- package/chunks/{updateCheck-FDAVGOFT.js → updateCheck-QRZ3DVT5.js} +39 -39
- package/chunks/{useAutoAcceptIndicator-PDZFIYRM.js → useAutoAcceptIndicator-DBJ7Y5AF.js} +44 -44
- package/chunks/{validateNonInterActiveAuth-Q4763ONQ.js → validateNonInterActiveAuth-6ZQWUDS3.js} +72 -72
- package/chunks/{version-C7MPCGWD.js → version-AJQGQWXC.js} +1 -1
- package/chunks/{web-fetch-L7RAPOJB.js → web-fetch-QWJYRXFL.js} +13 -13
- package/chunks/{web-search-IDOYUOWX.js → web-search-2AOXJGHU.js} +9 -9
- package/chunks/web-shell-static-O73YPVVC.js +33 -0
- package/chunks/{workflow-HXURUJB5.js → workflow-ERH3SJG2.js} +36 -36
- package/chunks/{workspace-providers-status-JZ3GPWNU.js → workspace-providers-status-HZ474RA4.js} +44 -44
- package/chunks/{workspace-registration-store-SM2PWB6L.js → workspace-registration-store-6EUP4JXG.js} +1 -1
- package/chunks/{workspace-registry-6W4ES7BJ.js → workspace-registry-R4APRRNC.js} +41 -41
- package/chunks/{workspace-service-V47ZFJRX.js → workspace-service-HFIFDMU7.js} +46 -46
- package/chunks/{workspace-skills-status-6ZQ45XKA.js → workspace-skills-status-HAHEIHGK.js} +42 -42
- package/chunks/{workspace-trust-reconciler-6V25LMCN.js → workspace-trust-reconciler-65GTAGDK.js} +50 -50
- package/chunks/{write-file-H2QOF25K.js → write-file-B34CDELV.js} +35 -35
- package/chunks/{zoom-image-JTUSS43N.js → zoom-image-HPRBZHSS.js} +10 -10
- package/cli.js +15 -15
- package/package.json +3 -3
- package/web-shell/assets/{arc-DtI1rZcQ.js → arc-Ip-FFDJ0.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-BPZwSVct.js → architectureDiagram-3BPJPVTR-CChqgwIb.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-BIQ03j4C.js → blockDiagram-GPEHLZMM-BHN-Tfss.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-CB0RyFGm.js → c4Diagram-AAUBKEIU-BhyjzDjN.js} +1 -1
- package/web-shell/assets/channel-Cu8qd6OB.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-B3WoS-4H.js → chunk-2J33WTMH-BB9eyHrx.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-C98xYZ1X.js → chunk-4BX2VUAB-BeV7ce_J.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-CbTIWRwQ.js → chunk-55IACEB6-DO7kXDiV.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-DWGnKTPu.js → chunk-727SXJPM-B27MPznD.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-4__QyCEX.js → chunk-AQP2D5EJ-DHIjqjD_.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-DFtG1YCW.js → chunk-FMBD7UC4-DabMqyN2.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-rvAhW51N.js → chunk-ND2GUHAM-Dw7Nnnxc.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-DfiU9pwZ.js → chunk-QZHKN3VN-DdaZew1Q.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-BI3KrXhq.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BI3KrXhq.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-Cc4EIdxu.js → cose-bilkent-S5V4N54A-CgBpCYH5.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-CZNj4dGW.js → dagre-BM42HDAG-BB4IU8G0.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-D5tiqQCr.js → diagram-2AECGRRQ-BcUTHU37.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-pwzw0jVO.js → diagram-5GNKFQAL-B6Lyihyv.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-4CWiM00x.js → diagram-KO2AKTUF-CRIJOjpG.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-Dd7rc7Qf.js → diagram-LMA3HP47-DdNiwWWT.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-_vzV52ml.js → diagram-OG6HWLK6-Dz4b32Do.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-CqbE2bx_.js → erDiagram-TEJ5UH35-D-8NGw77.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-CaxNr7w4.js → flowDiagram-I6XJVG4X-Dun26LyM.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-AGjrtfUA.js → ganttDiagram-6RSMTGT7-F10Hu1Gc.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-ADG2zSkc.js → gitGraphDiagram-PVQCEYII-Bf8Ez6-D.js} +1 -1
- package/web-shell/assets/{index-BOryKCqt.js → index-BXqw-nGq.js} +1 -1
- package/web-shell/assets/index-QQlUCJGg.css +5 -0
- package/web-shell/assets/index-hcgjV7vS.js +1768 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-CE3B_IoZ.js → infoDiagram-5YYISTIA-DVgTMLvj.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-CN-Frhoi.js → ishikawaDiagram-YF4QCWOH-uT-KepvK.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-CGgezS93.js → journeyDiagram-JHISSGLW-Vg_XadQf.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-BqWijky5.js → kanban-definition-UN3LZRKU-Dyv1ESBE.js} +1 -1
- package/web-shell/assets/{linear-D8sfpZf6.js → linear-BMIepYX3.js} +1 -1
- package/web-shell/assets/{mermaid.core-3PA4QrzM.js → mermaid.core-zA8pJ9ag.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-D9QxwiCY.js → mindmap-definition-RKZ34NQL-BCW_BZ_5.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-Bioaf6uE.js → pieDiagram-4H26LBE5-DseNEGp2.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DBb2AS73.js → quadrantDiagram-W4KKPZXB-6Z7wr1Fi.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-DXOvZ3KB.js → requirementDiagram-4Y6WPE33-CVOlCRPf.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-D9qg09Dm.js → sankeyDiagram-5OEKKPKP-CGhgrUJZ.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DSAUIfpw.js → sequenceDiagram-3UESZ5HK-dlqmpLuQ.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-BPZkzfQ3.js → stateDiagram-AJRCARHV-B9EW10Xb.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CJTZJJ5X.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-UDaQp9sP.js → timeline-definition-PNZ67QCA-BBRh0mgZ.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-2ouhAnHO.js → vennDiagram-CIIHVFJN-B8Gs-REP.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-Cq_WEvTK.js → wardley-L42UT6IY-D_y80Ur7.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-Dt24aXOM.js → wardleyDiagram-YWT4CUSO-D-CNfHJ-.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-A5Xk2WCH.js → xychartDiagram-2RQKCTM6-DQ5CvELo.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/create-sub-session-MWUWNBM6.js +0 -401
- package/web-shell/assets/channel-vfbVFuM1.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-Cvr8atq3.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Cvr8atq3.js +0 -1
- package/web-shell/assets/index-Cb1LjsCv.css +0 -5
- package/web-shell/assets/index-CvJDaIy8.js +0 -1756
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DInOqnhZ.js +0 -1
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
t
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-DBOFL3LQ.js";
|
|
6
6
|
import {
|
|
7
7
|
SessionReferenceService,
|
|
8
8
|
SessionService,
|
|
9
9
|
readManyFiles,
|
|
10
10
|
stripTerminalControlSequences
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-Y7E5LNLO.js";
|
|
12
12
|
import {
|
|
13
13
|
emptyMcpResourceText,
|
|
14
14
|
formatMcpResourceContents,
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
} from "./chunk-ZPJWUGCS.js";
|
|
17
17
|
import {
|
|
18
18
|
shouldRunVisionBridge
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-2U3WZGZG.js";
|
|
20
20
|
import {
|
|
21
21
|
Storage,
|
|
22
22
|
getErrorMessage,
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
isSubpath,
|
|
25
25
|
unescapePath,
|
|
26
26
|
unescapeShellSpecials
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-OIVKILPI.js";
|
|
28
28
|
import {
|
|
29
29
|
init_esbuild_shims
|
|
30
30
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
stringifyGenAiJson
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-EI3HZX6C.js";
|
|
6
6
|
import {
|
|
7
7
|
getMeter,
|
|
8
8
|
isTelemetrySdkInitialized,
|
|
9
9
|
truncateSpanError
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-6M26GBKX.js";
|
|
11
11
|
import {
|
|
12
12
|
require_src
|
|
13
13
|
} from "./chunk-W4RQUHY3.js";
|
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
createDebugLogger,
|
|
23
23
|
formatTraceparent,
|
|
24
24
|
getActiveSpanTraceContext
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-OIVKILPI.js";
|
|
26
26
|
import {
|
|
27
27
|
ROOT_CONTEXT,
|
|
28
28
|
SpanKind,
|
|
@@ -1075,6 +1075,8 @@ export {
|
|
|
1075
1075
|
addDaemonRequestAttribute,
|
|
1076
1076
|
recordDaemonError,
|
|
1077
1077
|
emitDaemonLog,
|
|
1078
|
+
captureDaemonTelemetryContext,
|
|
1079
|
+
runWithDaemonTelemetryContext,
|
|
1078
1080
|
extractDaemonTraceContext,
|
|
1079
1081
|
createDaemonBridgeTelemetry,
|
|
1080
1082
|
initializeDaemonMetrics,
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
EventBus,
|
|
7
7
|
logEventSizingFailed,
|
|
8
8
|
serializedBridgeEventByteLength
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-MZSJ43WV.js";
|
|
10
10
|
import {
|
|
11
11
|
normalizeCompactedReplayMaxBytes,
|
|
12
12
|
normalizeMaxJournalBytes,
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
} from "./chunk-OCPBI7J5.js";
|
|
18
18
|
import {
|
|
19
19
|
defaultSpawnChannelFactory
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-E33LOKRA.js";
|
|
21
21
|
import {
|
|
22
22
|
BridgeChannelClosedError,
|
|
23
23
|
BridgeTimeoutError,
|
|
@@ -26,11 +26,12 @@ import {
|
|
|
26
26
|
STATUS_SCHEMA_VERSION,
|
|
27
27
|
createIdleWorkspaceExtensionsStatus,
|
|
28
28
|
createIdleWorkspaceHooksStatus
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-NLREQJFK.js";
|
|
30
30
|
import {
|
|
31
31
|
CHANNEL_STARTUP_PROFILE_META_KEY,
|
|
32
32
|
CHANNEL_STARTUP_PROFILE_VERSION,
|
|
33
33
|
DAEMON_CHANNEL_DELIVERY_META_KEY,
|
|
34
|
+
DAEMON_MODEL_PROMPT_META_KEY,
|
|
34
35
|
LOAD_REPLAY_BULK_MODE,
|
|
35
36
|
LOAD_REPLAY_HIDE_INHERITED_META_KEY,
|
|
36
37
|
LOAD_REPLAY_META_KEY,
|
|
@@ -42,8 +43,9 @@ import {
|
|
|
42
43
|
REQUESTED_SESSION_ID_META_KEY,
|
|
43
44
|
TODO_STOP_GUARD_CONTINUATION_CLAIM_METHOD,
|
|
44
45
|
TODO_STOP_GUARD_QUEUE_RELEASE_METHOD,
|
|
45
|
-
WORKTREE_MCP_DEFER_META_KEY
|
|
46
|
-
|
|
46
|
+
WORKTREE_MCP_DEFER_META_KEY,
|
|
47
|
+
isValidTrustedModelPrompt
|
|
48
|
+
} from "./chunk-R574ATRM.js";
|
|
47
49
|
import {
|
|
48
50
|
BranchWhilePromptActiveError,
|
|
49
51
|
CancelSentinelCollisionError,
|
|
@@ -71,9 +73,12 @@ import {
|
|
|
71
73
|
} from "./chunk-6PLDPT2C.js";
|
|
72
74
|
import {
|
|
73
75
|
CHANNEL_DELIVERY_ERROR_CODES,
|
|
76
|
+
LIVE_TASK_TOOL_NAMES,
|
|
77
|
+
MAX_LIVE_SCREEN_CONTEXT_TEXT_CHARS,
|
|
78
|
+
MAX_LIVE_SPEAK_TO_USER_MESSAGE_CHARS,
|
|
74
79
|
MAX_SUB_SESSION_NAME_CHARS,
|
|
75
80
|
MAX_SUB_SESSION_PROMPT_CHARS
|
|
76
|
-
} from "./chunk-
|
|
81
|
+
} from "./chunk-HIBNSEJE.js";
|
|
77
82
|
import {
|
|
78
83
|
EXTERNAL_TOOL_GUARD_READY_META_KEY,
|
|
79
84
|
EXTERNAL_TOOL_GUARD_REQUIRED_VALUE,
|
|
@@ -95,16 +100,16 @@ import {
|
|
|
95
100
|
metadataBudgetBytes,
|
|
96
101
|
normalizeSnapshotPayload,
|
|
97
102
|
stableSessionArtifactId
|
|
98
|
-
} from "./chunk-
|
|
103
|
+
} from "./chunk-Y7E5LNLO.js";
|
|
99
104
|
import {
|
|
100
105
|
DAEMON_TRACEPARENT_META_KEY,
|
|
101
106
|
DAEMON_TRACESTATE_META_KEY
|
|
102
|
-
} from "./chunk-
|
|
107
|
+
} from "./chunk-L4N6TIP7.js";
|
|
103
108
|
import {
|
|
104
109
|
INVOCATION_CONTEXT_META_KEY,
|
|
105
110
|
PRIVATE_ACP_CAPABILITY_ENV,
|
|
106
111
|
PRIVATE_PARENT_CAPABILITY_META_KEY
|
|
107
|
-
} from "./chunk-
|
|
112
|
+
} from "./chunk-2U3WZGZG.js";
|
|
108
113
|
import {
|
|
109
114
|
init_esbuild_shims
|
|
110
115
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -1835,7 +1840,7 @@ function sliceLineRange(content, startLine, endLine) {
|
|
|
1835
1840
|
}
|
|
1836
1841
|
__name(sliceLineRange, "sliceLineRange");
|
|
1837
1842
|
var BridgeClient = class {
|
|
1838
|
-
constructor(resolveEntry, resolvePendingRestoreEvents, mediator, permissionTimeoutMs, maxPendingPerSession, fileSystem, onModelPromoted, onModePromoted, clientMcpSender, ownsSession = () => true, onTokenUsage, onCreateSubSession, onGenerationEvent, onWorkspaceGenerationEvent, onChannelDelivery, hasSessionSpawnInFlight = () => false, externalToolGuard) {
|
|
1843
|
+
constructor(resolveEntry, resolvePendingRestoreEvents, mediator, permissionTimeoutMs, maxPendingPerSession, fileSystem, onModelPromoted, onModePromoted, clientMcpSender, ownsSession = () => true, onTokenUsage, onCreateSubSession, onGenerationEvent, onWorkspaceGenerationEvent, onChannelDelivery, hasSessionSpawnInFlight = () => false, getLiveScreenContextCaptureHandler = () => void 0, getLiveTaskToolRequestHandler = () => void 0, getLiveSpeakToUserHandler = () => void 0, externalToolGuard) {
|
|
1839
1844
|
this.resolveEntry = resolveEntry;
|
|
1840
1845
|
this.resolvePendingRestoreEvents = resolvePendingRestoreEvents;
|
|
1841
1846
|
this.mediator = mediator;
|
|
@@ -1852,6 +1857,9 @@ var BridgeClient = class {
|
|
|
1852
1857
|
this.onWorkspaceGenerationEvent = onWorkspaceGenerationEvent;
|
|
1853
1858
|
this.onChannelDelivery = onChannelDelivery;
|
|
1854
1859
|
this.hasSessionSpawnInFlight = hasSessionSpawnInFlight;
|
|
1860
|
+
this.getLiveScreenContextCaptureHandler = getLiveScreenContextCaptureHandler;
|
|
1861
|
+
this.getLiveTaskToolRequestHandler = getLiveTaskToolRequestHandler;
|
|
1862
|
+
this.getLiveSpeakToUserHandler = getLiveSpeakToUserHandler;
|
|
1855
1863
|
this.externalToolGuard = externalToolGuard;
|
|
1856
1864
|
}
|
|
1857
1865
|
static {
|
|
@@ -2130,6 +2138,15 @@ var BridgeClient = class {
|
|
|
2130
2138
|
if (method === SERVE_CONTROL_EXT_METHODS.createSubSession) {
|
|
2131
2139
|
return this.handleCreateSubSession(params);
|
|
2132
2140
|
}
|
|
2141
|
+
if (method === SERVE_CONTROL_EXT_METHODS.liveCaptureScreenContext) {
|
|
2142
|
+
return this.handleLiveScreenContextCapture(params);
|
|
2143
|
+
}
|
|
2144
|
+
if (method === SERVE_CONTROL_EXT_METHODS.liveTaskTool) {
|
|
2145
|
+
return this.handleLiveTaskTool(params);
|
|
2146
|
+
}
|
|
2147
|
+
if (method === SERVE_CONTROL_EXT_METHODS.liveSpeakToUser) {
|
|
2148
|
+
return this.handleLiveSpeakToUser(params);
|
|
2149
|
+
}
|
|
2133
2150
|
if (method === SERVE_CONTROL_EXT_METHODS.channelDelivery) {
|
|
2134
2151
|
return this.handleChannelDelivery(params);
|
|
2135
2152
|
}
|
|
@@ -2484,6 +2501,71 @@ var BridgeClient = class {
|
|
|
2484
2501
|
...result.parentSessionPersisted !== void 0 ? { parentSessionPersisted: result.parentSessionPersisted } : {}
|
|
2485
2502
|
};
|
|
2486
2503
|
}
|
|
2504
|
+
async handleLiveScreenContextCapture(params) {
|
|
2505
|
+
const handler = this.getLiveScreenContextCaptureHandler();
|
|
2506
|
+
if (!handler) {
|
|
2507
|
+
throw RequestError.methodNotFound(
|
|
2508
|
+
SERVE_CONTROL_EXT_METHODS.liveCaptureScreenContext
|
|
2509
|
+
);
|
|
2510
|
+
}
|
|
2511
|
+
const callerSessionId = params["callerSessionId"];
|
|
2512
|
+
if (typeof callerSessionId !== "string" || callerSessionId.length === 0 || !this.ownsSession(callerSessionId)) {
|
|
2513
|
+
throw RequestError.invalidParams(
|
|
2514
|
+
void 0,
|
|
2515
|
+
"`callerSessionId` is required and must name a session owned by this connection"
|
|
2516
|
+
);
|
|
2517
|
+
}
|
|
2518
|
+
const result = await handler({ callerSessionId });
|
|
2519
|
+
if (result.appName.length === 0 || result.appName.length > 512 || result.windowTitle !== void 0 && result.windowTitle.length > 2048 || result.accessibilityText.length > MAX_LIVE_SCREEN_CONTEXT_TEXT_CHARS || result.screenshotPath.length === 0 || result.screenshotPath.length > 4096) {
|
|
2520
|
+
throw RequestError.internalError(void 0, "Invalid Appshot result.");
|
|
2521
|
+
}
|
|
2522
|
+
return {
|
|
2523
|
+
appName: result.appName,
|
|
2524
|
+
...result.windowTitle ? { windowTitle: result.windowTitle } : {},
|
|
2525
|
+
accessibilityText: result.accessibilityText,
|
|
2526
|
+
screenshotPath: result.screenshotPath
|
|
2527
|
+
};
|
|
2528
|
+
}
|
|
2529
|
+
async handleLiveTaskTool(params) {
|
|
2530
|
+
const handler = this.getLiveTaskToolRequestHandler();
|
|
2531
|
+
if (!handler) {
|
|
2532
|
+
throw RequestError.methodNotFound(SERVE_CONTROL_EXT_METHODS.liveTaskTool);
|
|
2533
|
+
}
|
|
2534
|
+
const callerSessionId = params["callerSessionId"];
|
|
2535
|
+
const name = params["name"];
|
|
2536
|
+
const args = params["arguments"];
|
|
2537
|
+
if (typeof callerSessionId !== "string" || callerSessionId.length === 0 || !this.ownsSession(callerSessionId) || typeof name !== "string" || !LIVE_TASK_TOOL_NAMES.includes(
|
|
2538
|
+
name
|
|
2539
|
+
) || typeof args !== "object" || args === null || Array.isArray(args)) {
|
|
2540
|
+
throw RequestError.invalidParams(
|
|
2541
|
+
void 0,
|
|
2542
|
+
"Invalid Live task-tool request."
|
|
2543
|
+
);
|
|
2544
|
+
}
|
|
2545
|
+
return handler({
|
|
2546
|
+
callerSessionId,
|
|
2547
|
+
name,
|
|
2548
|
+
arguments: args
|
|
2549
|
+
});
|
|
2550
|
+
}
|
|
2551
|
+
async handleLiveSpeakToUser(params) {
|
|
2552
|
+
const handler = this.getLiveSpeakToUserHandler();
|
|
2553
|
+
if (!handler) {
|
|
2554
|
+
throw RequestError.methodNotFound(
|
|
2555
|
+
SERVE_CONTROL_EXT_METHODS.liveSpeakToUser
|
|
2556
|
+
);
|
|
2557
|
+
}
|
|
2558
|
+
const callerSessionId = params["callerSessionId"];
|
|
2559
|
+
const message = params["message"];
|
|
2560
|
+
if (typeof callerSessionId !== "string" || callerSessionId.length === 0 || !this.ownsSession(callerSessionId) || typeof message !== "string" || message.trim().length === 0 || message.length > MAX_LIVE_SPEAK_TO_USER_MESSAGE_CHARS) {
|
|
2561
|
+
throw RequestError.invalidParams(
|
|
2562
|
+
void 0,
|
|
2563
|
+
"Invalid Live speak-to-user request."
|
|
2564
|
+
);
|
|
2565
|
+
}
|
|
2566
|
+
await handler({ callerSessionId, message });
|
|
2567
|
+
return { accepted: true };
|
|
2568
|
+
}
|
|
2487
2569
|
/**
|
|
2488
2570
|
* Handle child->bridge ACP `extNotification` calls. Recognized methods are
|
|
2489
2571
|
* `qwen/notify/session/model-update`,
|
|
@@ -2493,11 +2575,26 @@ var BridgeClient = class {
|
|
|
2493
2575
|
* `qwen/notify/session/prompt-suggestion` (followup assist),
|
|
2494
2576
|
* `qwen/notify/session/artifact-event` (hook artifacts),
|
|
2495
2577
|
* `qwen/notify/session/terminal-sequence`, and
|
|
2578
|
+
* `_qwencode/end_turn` (background-notification turns), and
|
|
2496
2579
|
* `qwen/notify/session/mcp-budget-event` — each translated into a
|
|
2497
2580
|
* session-scoped SSE frame. Unknown methods are dropped silently for
|
|
2498
2581
|
* forward-compat.
|
|
2499
2582
|
*/
|
|
2500
2583
|
async extNotification(method, params) {
|
|
2584
|
+
if (method === "_qwencode/end_turn") {
|
|
2585
|
+
const sessionId2 = params["sessionId"];
|
|
2586
|
+
const reason = params["reason"];
|
|
2587
|
+
if (typeof sessionId2 !== "string" || sessionId2.length === 0 || typeof reason !== "string" || reason.length === 0 || reason.length > 128 || params["source"] !== "background_notification") {
|
|
2588
|
+
return;
|
|
2589
|
+
}
|
|
2590
|
+
const entry = this.resolveEntry(sessionId2);
|
|
2591
|
+
if (!entry || !this.ownsSession(sessionId2)) return;
|
|
2592
|
+
entry.events.publish({
|
|
2593
|
+
type: "background_notification_turn_complete",
|
|
2594
|
+
data: { sessionId: sessionId2, reason }
|
|
2595
|
+
});
|
|
2596
|
+
return;
|
|
2597
|
+
}
|
|
2501
2598
|
if (method === "qwen/notify/session/generation/event") {
|
|
2502
2599
|
const sessionId2 = params["sessionId"];
|
|
2503
2600
|
const requestId = params["requestId"];
|
|
@@ -5993,6 +6090,9 @@ var DEFAULT_MAX_PENDING_PER_SESSION = 64;
|
|
|
5993
6090
|
var DEFAULT_SESSION_REAP_INTERVAL_MS = 6e4;
|
|
5994
6091
|
var DEFAULT_SESSION_IDLE_TIMEOUT_MS = 30 * 6e4;
|
|
5995
6092
|
function createAcpSessionBridge(opts) {
|
|
6093
|
+
let liveScreenContextCaptureHandler;
|
|
6094
|
+
let liveTaskToolRequestHandler;
|
|
6095
|
+
let liveSpeakToUserHandler;
|
|
5996
6096
|
const defaultSessionScope = opts.sessionScope ?? "single";
|
|
5997
6097
|
let maxSessions;
|
|
5998
6098
|
if (opts.maxSessions === void 0) {
|
|
@@ -6560,6 +6660,9 @@ function createAcpSessionBridge(opts) {
|
|
|
6560
6660
|
},
|
|
6561
6661
|
opts.onChannelDelivery,
|
|
6562
6662
|
() => channelInfo?.sessionIds === sessionIds && channelInfo.sessionSpawnsInFlight > 0,
|
|
6663
|
+
() => liveScreenContextCaptureHandler,
|
|
6664
|
+
() => liveTaskToolRequestHandler,
|
|
6665
|
+
() => liveSpeakToUserHandler,
|
|
6563
6666
|
opts.externalToolGuard
|
|
6564
6667
|
);
|
|
6565
6668
|
connection = new ClientSideConnection(() => client, channel.stream);
|
|
@@ -7750,9 +7853,15 @@ function createAcpSessionBridge(opts) {
|
|
|
7750
7853
|
};
|
|
7751
7854
|
}
|
|
7752
7855
|
if (action === "load") {
|
|
7856
|
+
const liveJournal = snapshot.liveJournal.map((event) => {
|
|
7857
|
+
if (!entry.activePromptId || event.type !== "history_truncated" || !event.data || typeof event.data !== "object" || event.data.scope !== "live_journal") {
|
|
7858
|
+
return event;
|
|
7859
|
+
}
|
|
7860
|
+
return { ...event, promptId: entry.activePromptId };
|
|
7861
|
+
});
|
|
7753
7862
|
return {
|
|
7754
7863
|
compactedReplay: snapshot.compactedTurns,
|
|
7755
|
-
liveJournal
|
|
7864
|
+
liveJournal,
|
|
7756
7865
|
lastEventId: snapshot.lastEventId,
|
|
7757
7866
|
eventEpoch,
|
|
7758
7867
|
...replayStatus,
|
|
@@ -7923,6 +8032,7 @@ function createAcpSessionBridge(opts) {
|
|
|
7923
8032
|
return {
|
|
7924
8033
|
sessionId: existing.sessionId,
|
|
7925
8034
|
workspaceCwd: existing.workspaceCwd,
|
|
8035
|
+
...existing.effectiveCwd !== existing.workspaceCwd ? { currentCwd: existing.effectiveCwd } : {},
|
|
7926
8036
|
attached: true,
|
|
7927
8037
|
clientId,
|
|
7928
8038
|
createdAt: existing.createdAt,
|
|
@@ -8120,6 +8230,7 @@ function createAcpSessionBridge(opts) {
|
|
|
8120
8230
|
return {
|
|
8121
8231
|
sessionId: racedEntry.sessionId,
|
|
8122
8232
|
workspaceCwd: racedEntry.workspaceCwd,
|
|
8233
|
+
...racedEntry.effectiveCwd !== racedEntry.workspaceCwd ? { currentCwd: racedEntry.effectiveCwd } : {},
|
|
8123
8234
|
attached: true,
|
|
8124
8235
|
clientId: clientId2,
|
|
8125
8236
|
createdAt: racedEntry.createdAt,
|
|
@@ -8355,6 +8466,15 @@ function createAcpSessionBridge(opts) {
|
|
|
8355
8466
|
__name(closeSessionImpl, "closeSessionImpl");
|
|
8356
8467
|
startSessionReaper();
|
|
8357
8468
|
const bridgeApi = {
|
|
8469
|
+
setLiveScreenContextCaptureHandler(handler) {
|
|
8470
|
+
liveScreenContextCaptureHandler = handler;
|
|
8471
|
+
},
|
|
8472
|
+
setLiveTaskToolRequestHandler(handler) {
|
|
8473
|
+
liveTaskToolRequestHandler = handler;
|
|
8474
|
+
},
|
|
8475
|
+
setLiveSpeakToUserHandler(handler) {
|
|
8476
|
+
liveSpeakToUserHandler = handler;
|
|
8477
|
+
},
|
|
8358
8478
|
getDaemonStatusSnapshot() {
|
|
8359
8479
|
return {
|
|
8360
8480
|
limits: {
|
|
@@ -8478,6 +8598,7 @@ function createAcpSessionBridge(opts) {
|
|
|
8478
8598
|
return {
|
|
8479
8599
|
sessionId: existing.sessionId,
|
|
8480
8600
|
workspaceCwd: existing.workspaceCwd,
|
|
8601
|
+
...existing.effectiveCwd !== existing.workspaceCwd ? { currentCwd: existing.effectiveCwd } : {},
|
|
8481
8602
|
attached: true,
|
|
8482
8603
|
clientId,
|
|
8483
8604
|
createdAt: existing.createdAt,
|
|
@@ -8581,6 +8702,12 @@ function createAcpSessionBridge(opts) {
|
|
|
8581
8702
|
entry,
|
|
8582
8703
|
context?.clientId
|
|
8583
8704
|
);
|
|
8705
|
+
const modelPrompt = context?.modelPrompt;
|
|
8706
|
+
if (modelPrompt !== void 0 && !isValidTrustedModelPrompt(modelPrompt)) {
|
|
8707
|
+
throw new TypeError(
|
|
8708
|
+
"Bridge modelPrompt must be a non-empty bounded string."
|
|
8709
|
+
);
|
|
8710
|
+
}
|
|
8584
8711
|
if (signal?.aborted) {
|
|
8585
8712
|
throw new DOMException("Prompt aborted", "AbortError");
|
|
8586
8713
|
}
|
|
@@ -8627,6 +8754,14 @@ function createAcpSessionBridge(opts) {
|
|
|
8627
8754
|
state: isQueued ? "queued" : "running"
|
|
8628
8755
|
};
|
|
8629
8756
|
entry.pendingPromptList.push(pendingEntry);
|
|
8757
|
+
try {
|
|
8758
|
+
context?.onPromptAdmitted?.();
|
|
8759
|
+
} catch (error) {
|
|
8760
|
+
opts.onDiagnosticLine?.(
|
|
8761
|
+
`qwen serve: prompt admission observer failed for session=${sessionId}: ${error instanceof Error ? error.message : String(error)}`,
|
|
8762
|
+
"warn"
|
|
8763
|
+
);
|
|
8764
|
+
}
|
|
8630
8765
|
const deadlineMs = context?.deadlineMs;
|
|
8631
8766
|
const hasDeadline = typeof deadlineMs === "number" && Number.isFinite(deadlineMs) && deadlineMs > 0;
|
|
8632
8767
|
let deadlineReject;
|
|
@@ -8755,6 +8890,7 @@ function createAcpSessionBridge(opts) {
|
|
|
8755
8890
|
delete meta[PRIVATE_PARENT_CAPABILITY_META_KEY];
|
|
8756
8891
|
delete meta[DAEMON_CONTINUE_META_KEY];
|
|
8757
8892
|
delete meta[DAEMON_CHANNEL_DELIVERY_META_KEY];
|
|
8893
|
+
delete meta[DAEMON_MODEL_PROMPT_META_KEY];
|
|
8758
8894
|
if (isRetry) {
|
|
8759
8895
|
meta[DAEMON_RETRY_META_KEY] = true;
|
|
8760
8896
|
}
|
|
@@ -8764,6 +8900,9 @@ function createAcpSessionBridge(opts) {
|
|
|
8764
8900
|
if (context?.channelDelivery) {
|
|
8765
8901
|
meta[DAEMON_CHANNEL_DELIVERY_META_KEY] = context.channelDelivery;
|
|
8766
8902
|
}
|
|
8903
|
+
if (modelPrompt !== void 0) {
|
|
8904
|
+
meta[DAEMON_MODEL_PROMPT_META_KEY] = modelPrompt;
|
|
8905
|
+
}
|
|
8767
8906
|
meta[INVOCATION_CONTEXT_META_KEY] = invocationContext;
|
|
8768
8907
|
if (Object.keys(meta).length > 0) {
|
|
8769
8908
|
copy._meta = meta;
|
|
@@ -9292,7 +9431,8 @@ function createAcpSessionBridge(opts) {
|
|
|
9292
9431
|
{
|
|
9293
9432
|
sessionId,
|
|
9294
9433
|
path: req.path,
|
|
9295
|
-
...req.allowedRoots ? { allowedRoots: req.allowedRoots } : {}
|
|
9434
|
+
...req.allowedRoots ? { allowedRoots: req.allowedRoots } : {},
|
|
9435
|
+
...req.managedRelocation ? { managedRelocation: req.managedRelocation } : {}
|
|
9296
9436
|
}
|
|
9297
9437
|
);
|
|
9298
9438
|
const extResult = raw;
|
|
@@ -10030,6 +10170,20 @@ function createAcpSessionBridge(opts) {
|
|
|
10030
10170
|
refreshed: result.refreshed ?? false
|
|
10031
10171
|
};
|
|
10032
10172
|
},
|
|
10173
|
+
async setSessionLiveConversationActive(sessionId, active) {
|
|
10174
|
+
await requestSessionStatus(
|
|
10175
|
+
sessionId,
|
|
10176
|
+
SERVE_CONTROL_EXT_METHODS.sessionLiveConversation,
|
|
10177
|
+
{ active }
|
|
10178
|
+
);
|
|
10179
|
+
},
|
|
10180
|
+
async appendSessionLiveTranscript(sessionId, entries, model) {
|
|
10181
|
+
await requestSessionStatus(
|
|
10182
|
+
sessionId,
|
|
10183
|
+
SERVE_CONTROL_EXT_METHODS.sessionLiveTranscript,
|
|
10184
|
+
{ entries, model }
|
|
10185
|
+
);
|
|
10186
|
+
},
|
|
10033
10187
|
async setSessionApprovalMode(sessionId, mode, opts2, context) {
|
|
10034
10188
|
const entry = byId.get(sessionId);
|
|
10035
10189
|
if (!entry) throw new SessionNotFoundError(sessionId);
|
|
@@ -10237,6 +10391,24 @@ function createAcpSessionBridge(opts) {
|
|
|
10237
10391
|
entry.midTurnMessageQueue.splice(index, 1);
|
|
10238
10392
|
return { removed: true };
|
|
10239
10393
|
},
|
|
10394
|
+
async enqueueBackgroundNotification(sessionId, notification) {
|
|
10395
|
+
const entry = byId.get(sessionId);
|
|
10396
|
+
if (!entry) throw new SessionNotFoundError(sessionId);
|
|
10397
|
+
const info = channelInfoForEntry(entry);
|
|
10398
|
+
if (!info || info.isDying) throw new SessionNotFoundError(sessionId);
|
|
10399
|
+
const response = await Promise.race([
|
|
10400
|
+
withTimeout(
|
|
10401
|
+
entry.connection.extMethod(
|
|
10402
|
+
SERVE_CONTROL_EXT_METHODS.sessionBackgroundNotification,
|
|
10403
|
+
{ sessionId, ...notification }
|
|
10404
|
+
),
|
|
10405
|
+
initTimeoutMs,
|
|
10406
|
+
SERVE_CONTROL_EXT_METHODS.sessionBackgroundNotification
|
|
10407
|
+
),
|
|
10408
|
+
getTransportClosedReject(entry)
|
|
10409
|
+
]);
|
|
10410
|
+
return { sessionId, accepted: response["accepted"] === true };
|
|
10411
|
+
},
|
|
10240
10412
|
async generateSessionBtw(sessionId, question, signal, _context) {
|
|
10241
10413
|
const entry = byId.get(sessionId);
|
|
10242
10414
|
if (!entry) throw new SessionNotFoundError(sessionId);
|
|
@@ -11119,6 +11291,7 @@ export {
|
|
|
11119
11291
|
SessionArtifactAuthorizationError,
|
|
11120
11292
|
SESSION_SOURCE_META_KEY,
|
|
11121
11293
|
parseSessionSource,
|
|
11294
|
+
isA2uiToolMeta,
|
|
11122
11295
|
extractErrorMessage,
|
|
11123
11296
|
extractErrorCode,
|
|
11124
11297
|
classifyTurnErrorKind,
|
|
@@ -2,20 +2,20 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
performStandaloneUpdate
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-GSS34377.js";
|
|
6
6
|
import {
|
|
7
7
|
updateEventEmitter
|
|
8
8
|
} from "./chunk-YAF2MQZ6.js";
|
|
9
9
|
import {
|
|
10
10
|
t
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-DBOFL3LQ.js";
|
|
12
12
|
import {
|
|
13
13
|
getInstallationInfo,
|
|
14
14
|
resolveUpdateCommand
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-HYRDKNUY.js";
|
|
16
16
|
import {
|
|
17
17
|
createDebugLogger
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-OIVKILPI.js";
|
|
19
19
|
import {
|
|
20
20
|
init_esbuild_shims
|
|
21
21
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -9,15 +9,15 @@ import {
|
|
|
9
9
|
} from "./chunk-AQ37AY7B.js";
|
|
10
10
|
import {
|
|
11
11
|
DEFAULT_FILE_FILTERING_OPTIONS
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-EQL65XGA.js";
|
|
13
13
|
import {
|
|
14
14
|
ToolNames
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-IC4Z6LX6.js";
|
|
16
16
|
import {
|
|
17
17
|
createDebugLogger,
|
|
18
18
|
getErrorMessage,
|
|
19
19
|
isNodeError
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-OIVKILPI.js";
|
|
21
21
|
import {
|
|
22
22
|
init_esbuild_shims
|
|
23
23
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -692,7 +692,7 @@ __name(resolveForkExecutionAllowedTools, "resolveForkExecutionAllowedTools");
|
|
|
692
692
|
function registerForkDisplayImageForCache(config, advertisedToolNames) {
|
|
693
693
|
if (!advertisedToolNames.includes(ToolNames.DISPLAY_IMAGE)) return;
|
|
694
694
|
config.getToolRegistry().registerFactory(ToolNames.DISPLAY_IMAGE, async () => {
|
|
695
|
-
const { DisplayImageTool } = await import("./display-image-
|
|
695
|
+
const { DisplayImageTool } = await import("./display-image-O2XFPQTC.js");
|
|
696
696
|
return new DisplayImageTool(config);
|
|
697
697
|
});
|
|
698
698
|
}
|
|
@@ -16,7 +16,10 @@ import {
|
|
|
16
16
|
MODIFIER_SHIFT_BIT,
|
|
17
17
|
MODIFIER_SUPER_BIT,
|
|
18
18
|
clipboardHasImage
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-YHEEE624.js";
|
|
20
|
+
import {
|
|
21
|
+
noteInteraction
|
|
22
|
+
} from "./chunk-KW7NOTN6.js";
|
|
20
23
|
import {
|
|
21
24
|
require_jsx_runtime
|
|
22
25
|
} from "./chunk-SV5PQVQE.js";
|
|
@@ -27,16 +30,13 @@ import {
|
|
|
27
30
|
import {
|
|
28
31
|
require_react
|
|
29
32
|
} from "./chunk-5QWWOFGG.js";
|
|
30
|
-
import {
|
|
31
|
-
noteInteraction
|
|
32
|
-
} from "./chunk-KW7NOTN6.js";
|
|
33
33
|
import {
|
|
34
34
|
KittySequenceOverflowEvent,
|
|
35
35
|
logKittySequenceOverflow
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-2U3WZGZG.js";
|
|
37
37
|
import {
|
|
38
38
|
createDebugLogger
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-OIVKILPI.js";
|
|
40
40
|
import {
|
|
41
41
|
init_esbuild_shims
|
|
42
42
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
getInboxesDir
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-7MH4J33A.js";
|
|
6
6
|
import {
|
|
7
7
|
require_proper_lockfile
|
|
8
8
|
} from "./chunk-KRXPRVGL.js";
|
|
@@ -11,11 +11,11 @@ import {
|
|
|
11
11
|
} from "./chunk-VGC4I5JJ.js";
|
|
12
12
|
import {
|
|
13
13
|
atomicWriteJSON
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-FOGU3LJX.js";
|
|
15
15
|
import {
|
|
16
16
|
createDebugLogger,
|
|
17
17
|
isNodeError
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-OIVKILPI.js";
|
|
19
19
|
import {
|
|
20
20
|
init_esbuild_shims
|
|
21
21
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -75,7 +75,7 @@ var LOCK_OPTIONS = {
|
|
|
75
75
|
// Stale locks from crashed processes are expected in multi-agent
|
|
76
76
|
// scenarios; log at debug level for traceability without noise.
|
|
77
77
|
onCompromised: /* @__PURE__ */ __name((err) => {
|
|
78
|
-
debug.debug("mailbox lock compromised:", err
|
|
78
|
+
debug.debug("mailbox lock compromised:", err);
|
|
79
79
|
}, "onCompromised")
|
|
80
80
|
};
|
|
81
81
|
var inboxLocks = /* @__PURE__ */ new Map();
|
|
@@ -106,7 +106,11 @@ async function withInboxLock(inboxPath, fn) {
|
|
|
106
106
|
try {
|
|
107
107
|
return await fn();
|
|
108
108
|
} finally {
|
|
109
|
-
|
|
109
|
+
try {
|
|
110
|
+
await release();
|
|
111
|
+
} catch (error) {
|
|
112
|
+
debug.debug("Failed to release mailbox lock:", error);
|
|
113
|
+
}
|
|
110
114
|
}
|
|
111
115
|
});
|
|
112
116
|
}
|
|
@@ -79,6 +79,14 @@ function logSlowClientWarning(data) {
|
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
__name(logSlowClientWarning, "logSlowClientWarning");
|
|
82
|
+
function subscriberDiagnosticHandled(sub, diagnostic) {
|
|
83
|
+
try {
|
|
84
|
+
return sub.onSubscriberDiagnostic?.(diagnostic) === true;
|
|
85
|
+
} catch {
|
|
86
|
+
return false;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
__name(subscriberDiagnosticHandled, "subscriberDiagnosticHandled");
|
|
82
90
|
var SubscriberLimitExceededError = class extends Error {
|
|
83
91
|
static {
|
|
84
92
|
__name(this, "SubscriberLimitExceededError");
|
|
@@ -222,7 +230,17 @@ var EventBus = class {
|
|
|
222
230
|
maxQueuedBytes: sub.maxQueuedBytes,
|
|
223
231
|
...pushResult.reason === "queue_bytes_overflow" ? { eventBytes: pushResult.eventBytes } : {}
|
|
224
232
|
};
|
|
225
|
-
|
|
233
|
+
const evictionDiagnostic = {
|
|
234
|
+
type: "client_evicted",
|
|
235
|
+
data: {
|
|
236
|
+
...evictionData,
|
|
237
|
+
triggerEventType: event.type,
|
|
238
|
+
triggerEventBytes: eventBytes
|
|
239
|
+
}
|
|
240
|
+
};
|
|
241
|
+
if (!subscriberDiagnosticHandled(sub, evictionDiagnostic)) {
|
|
242
|
+
logSubscriberEvicted(evictionData);
|
|
243
|
+
}
|
|
226
244
|
const evictionFrame = {
|
|
227
245
|
v: EVENT_SCHEMA_VERSION,
|
|
228
246
|
type: "client_evicted",
|
|
@@ -254,7 +272,17 @@ var EventBus = class {
|
|
|
254
272
|
maxQueuedBytes: sub.maxQueuedBytes,
|
|
255
273
|
threshold
|
|
256
274
|
};
|
|
257
|
-
|
|
275
|
+
const warningDiagnostic = {
|
|
276
|
+
type: "slow_client_warning",
|
|
277
|
+
data: {
|
|
278
|
+
...warningData,
|
|
279
|
+
triggerEventType: event.type,
|
|
280
|
+
triggerEventBytes: eventBytes
|
|
281
|
+
}
|
|
282
|
+
};
|
|
283
|
+
if (!subscriberDiagnosticHandled(sub, warningDiagnostic)) {
|
|
284
|
+
logSlowClientWarning(warningData);
|
|
285
|
+
}
|
|
258
286
|
const warningFrame = {
|
|
259
287
|
v: EVENT_SCHEMA_VERSION,
|
|
260
288
|
type: "slow_client_warning",
|
|
@@ -301,6 +329,7 @@ var EventBus = class {
|
|
|
301
329
|
warnBytesThreshold: WARN_THRESHOLD_RATIO * this.maxQueuedBytes,
|
|
302
330
|
warnBytesResetThreshold: WARN_RESET_RATIO * this.maxQueuedBytes,
|
|
303
331
|
warned: false,
|
|
332
|
+
onSubscriberDiagnostic: opts.onSubscriberDiagnostic,
|
|
304
333
|
dispose: /* @__PURE__ */ __name(() => {
|
|
305
334
|
}, "dispose")
|
|
306
335
|
};
|