@qwen-code/qwen-code 0.21.13 → 0.21.14-nightly.20260822.7a4566cb3b
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 +15 -7
- package/bundled/qc-helper/docs/extension/introduction.md +2 -0
- package/bundled/qc-helper/docs/features/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +1 -1
- package/bundled/qc-helper/docs/features/code-review.md +25 -3
- package/bundled/qc-helper/docs/features/commands.md +120 -8
- package/bundled/qc-helper/docs/features/markdown-rendering.md +6 -0
- package/bundled/qc-helper/docs/features/sub-agents.md +3 -3
- package/bundled/qc-helper/docs/features/terminal-images.md +50 -0
- package/bundled/qc-helper/docs/qwen-serve-deploy-local.md +1 -1
- package/bundled/qc-helper/docs/qwen-serve.md +21 -4
- package/bundled/review/SKILL.md +113 -62
- package/chunks/MaxSizedBox-NCWYES5B.js +98 -0
- package/chunks/{StandaloneSessionPicker-KEGXNUG6.js → StandaloneSessionPicker-A4V4F64Y.js} +80 -79
- package/chunks/{acp-startup-profiler-NMDXYGDN.js → acp-startup-profiler-DDVSJKJK.js} +2 -2
- package/chunks/{acpAgent-XPES32S7.js → acpAgent-YYRH7HTQ.js} +1094 -278
- package/chunks/{agent-DPTOZFEM.js → agent-NEM254CJ.js} +52 -51
- package/chunks/agent-headless-AVFYIRPV.js +88 -0
- package/chunks/{anthropicContentGenerator-G7BVXTKN.js → anthropicContentGenerator-IWFTSBSV.js} +25 -25
- package/chunks/{artifact-tool-GEXTOPVO.js → artifact-tool-SBXMTVCB.js} +3 -3
- package/chunks/{askUserQuestion-B33XRSB7.js → askUserQuestion-KEQJRFD6.js} +3 -3
- package/chunks/{bridge-YNQBAA4Z.js → bridge-2CGOUO25.js} +59 -57
- package/chunks/{ca-4CQ6MYNQ.js → ca-SLZJD6QH.js} +8 -0
- package/chunks/{channel-management-service-GWY2GAIC.js → channel-management-service-FUJ2EFTF.js} +1 -1
- package/chunks/channel-settings-store-AZKNHHDC.js +103 -0
- package/chunks/{channel-worker-group-7LXCMZ77.js → channel-worker-group-CTE54QL6.js} +8 -7
- package/chunks/{channel-worker-manager-RYEME4ZZ.js → channel-worker-manager-4EHTD3T4.js} +8 -7
- package/chunks/{channel-worker-supervisor-OEVWBHGT.js → channel-worker-supervisor-F6I6WSWW.js} +6 -5
- package/chunks/{chunk-KD5BOPLP.js → chunk-2G4QF4VI.js} +125 -31
- package/chunks/{chunk-BHILXOC3.js → chunk-2MTIAN5Z.js} +3 -3
- package/chunks/{chunk-A4QRWUDE.js → chunk-2NWPB6T4.js} +6 -6
- package/chunks/{chunk-KV27IEHM.js → chunk-2TRNCJK4.js} +1 -1
- package/chunks/{chunk-EL5SXY3T.js → chunk-32CHFLGV.js} +198 -23
- package/chunks/{chunk-5CVO7YES.js → chunk-36OF5PRW.js} +1 -1
- package/chunks/{chunk-X26JYGTD.js → chunk-37BZSWEV.js} +1 -1
- package/chunks/{chunk-WFSTRPRO.js → chunk-3CLIDIVQ.js} +3 -3
- package/chunks/{chunk-A267JX7H.js → chunk-3HWN4E7N.js} +18 -18
- package/chunks/{chunk-ZYYTZUI2.js → chunk-3LYGXZ2H.js} +3 -3
- package/chunks/chunk-3SIGAHUX.js +3969 -0
- package/chunks/{chunk-BVJS5BSP.js → chunk-3XD4PT3B.js} +1 -1
- package/chunks/{chunk-6QFDQMQX.js → chunk-3ZFJUBTP.js} +1 -1
- package/chunks/{chunk-HUTNYWBG.js → chunk-45UD2TU4.js} +19 -11
- package/chunks/{chunk-4W5U2TUT.js → chunk-4F5WV4RF.js} +4 -4
- package/chunks/{chunk-I3G5JWBV.js → chunk-4GP3MNQ2.js} +2695 -1524
- package/chunks/{chunk-V26NVGAU.js → chunk-4MIDDJLJ.js} +8 -3
- package/chunks/{chunk-TS6625XH.js → chunk-5MK45KZ3.js} +9 -5
- package/chunks/{chunk-V57QC6WW.js → chunk-5OTMZVPL.js} +11 -9
- package/chunks/{chunk-MC4TLKEI.js → chunk-5PHLBWBL.js} +3 -3
- package/chunks/chunk-64LXOKG4.js +367 -0
- package/chunks/{chunk-6HY6IF3Z.js → chunk-6NFAEG54.js} +22 -2
- package/chunks/{chunk-TIGA2IVL.js → chunk-6NJIPX6W.js} +10 -298
- package/chunks/{chunk-MRMJCLIY.js → chunk-6RB2S4QP.js} +3 -3
- package/chunks/chunk-6S2OXVJT.js +369 -0
- package/chunks/{chunk-O4D7SPJN.js → chunk-6U46RZ25.js} +3 -3
- package/chunks/{chunk-JOOFMXGF.js → chunk-6UDHEIUT.js} +6 -6
- package/chunks/{chunk-VOQXFAY5.js → chunk-74TONY4F.js} +286 -0
- package/chunks/{chunk-LJQAUZMR.js → chunk-7CPJMZVJ.js} +1627 -180
- package/chunks/{chunk-T3CHYWJZ.js → chunk-7E7UCJHS.js} +100 -4
- package/chunks/{chunk-YZHRN3CF.js → chunk-7IV52LTO.js} +2 -2
- package/chunks/{chunk-4PKCUT7F.js → chunk-7JDGSJQH.js} +7 -7
- package/chunks/{chunk-GO7STP6N.js → chunk-7VITNOH6.js} +4 -4
- package/chunks/{chunk-CU6GJD55.js → chunk-7WLFSDLG.js} +1 -1
- package/chunks/{chunk-4WKAA4KS.js → chunk-A4N4FTMH.js} +1 -11
- package/chunks/{chunk-BUQDLC2G.js → chunk-A5F2YNO6.js} +3 -3
- package/chunks/{chunk-OY5RNSV4.js → chunk-AGCLK4G7.js} +3 -3
- package/chunks/{chunk-IA2K2HJE.js → chunk-AP3B7LKD.js} +2 -2
- package/chunks/{chunk-Y3YCSWG5.js → chunk-AZF6SME3.js} +2 -2
- package/chunks/{chunk-QFJ5JHQR.js → chunk-C72BXMJ5.js} +1 -1
- package/chunks/chunk-CETB5XY4.js +3654 -0
- package/chunks/{chunk-AA2BEKV3.js → chunk-CTAP6PO3.js} +3 -3
- package/chunks/{chunk-MS7GNABG.js → chunk-CXJHQVEK.js} +8 -0
- package/chunks/{chunk-QF2NHSPB.js → chunk-D534POS2.js} +274 -225
- package/chunks/{chunk-UKMR3CKV.js → chunk-D7QQ6RUB.js} +24 -9
- package/chunks/{chunk-DXIBNLBZ.js → chunk-DB2OKNTU.js} +2 -2
- package/chunks/{chunk-DGZEMW5R.js → chunk-DJEHYM4H.js} +3 -3
- package/chunks/{chunk-O565M6A4.js → chunk-DRVS6K7A.js} +260 -16
- package/chunks/{chunk-U3VNBPUO.js → chunk-DV4375RD.js} +5 -5
- package/chunks/{chunk-OXCMMLED.js → chunk-E63A23D7.js} +3 -3
- package/chunks/{chunk-4NFY2S7N.js → chunk-E7REAOTN.js} +15 -0
- package/chunks/{chunk-6ORZ2EDC.js → chunk-EW2IQ3ID.js} +3 -3
- package/chunks/{chunk-DGK6P3BQ.js → chunk-EXVK5R7X.js} +13 -13
- package/chunks/{chunk-NWNEANAT.js → chunk-FOGQO4FG.js} +953 -660
- package/chunks/{chunk-3U3VAL47.js → chunk-FV6PXZRO.js} +1 -1
- package/chunks/{chunk-76J3IJ3M.js → chunk-FX5TGHDE.js} +8 -8
- package/chunks/{chunk-QIH2HAEN.js → chunk-GXG4PYQB.js} +1 -1
- package/chunks/{chunk-FDGGZIYW.js → chunk-HDKCKCYO.js} +3 -3
- package/chunks/{chunk-RIAABG2K.js → chunk-HERHU33B.js} +2 -2
- package/chunks/{chunk-ZYBBISBY.js → chunk-HETN3NE2.js} +18 -15
- package/chunks/{chunk-XIT3GURH.js → chunk-HGBACZGD.js} +3 -3
- package/chunks/{chunk-UZPM4XHR.js → chunk-HGH7DXNI.js} +29 -8
- package/chunks/{chunk-CHHABXPE.js → chunk-HIK2OF33.js} +1 -1
- package/chunks/{chunk-FC4KQFCS.js → chunk-HMJ2P3SV.js} +1 -1
- package/chunks/chunk-HRVMTN37.js +26 -0
- package/chunks/{chunk-PQ36L4F5.js → chunk-HZZGYJIP.js} +1 -1
- package/chunks/{chunk-PT4I7NBA.js → chunk-I432KXWD.js} +1 -1
- package/chunks/{chunk-3EZLLVDF.js → chunk-IBJ5S45N.js} +3 -3
- package/chunks/{chunk-A4MFR4C5.js → chunk-IO257NUD.js} +3 -5
- package/chunks/{chunk-MIPFDQAF.js → chunk-ISJMN3ML.js} +1 -1
- package/chunks/chunk-IWOWEENB.js +9169 -0
- package/chunks/{chunk-XHRY7BXD.js → chunk-J6SIP2IT.js} +4 -4
- package/chunks/{chunk-OD2WU5QY.js → chunk-J7JQXYVL.js} +1 -1
- package/chunks/{chunk-NEFOOD54.js → chunk-J7VPB2HF.js} +4 -4
- package/chunks/{chunk-P7MPQI75.js → chunk-JGUBDRBC.js} +2 -2
- package/chunks/{chunk-SXCOEJO4.js → chunk-JOLJTKIG.js} +1 -1
- package/chunks/{chunk-NTTBXH7U.js → chunk-JS73NNWF.js} +8 -0
- package/chunks/{chunk-QRCNA3SR.js → chunk-JXLPQTMW.js} +50 -70
- package/chunks/{chunk-NNHNLJ2X.js → chunk-K2MSGB3W.js} +317 -72
- package/chunks/{chunk-KBXKR5R2.js → chunk-K52PZNU4.js} +1 -1
- package/chunks/{chunk-OOQUVWIG.js → chunk-K5OIW3I7.js} +4 -4
- package/chunks/{chunk-SOORFWKY.js → chunk-KSPRQSB4.js} +1 -1
- package/chunks/{chunk-WSH6GRKG.js → chunk-KVGR4MCF.js} +3 -3
- package/chunks/{chunk-6YKYPVDV.js → chunk-LC5M7YVE.js} +4 -4
- package/chunks/{chunk-M6NDLY2T.js → chunk-LD5VIJ7S.js} +1 -1
- package/chunks/{chunk-OMLJNPBE.js → chunk-LDGWX737.js} +84 -4
- package/chunks/{chunk-FAAUPSY2.js → chunk-LI4YHTQK.js} +1 -1
- package/chunks/{chunk-CXAOG665.js → chunk-LIKIJAUH.js} +2 -2
- package/chunks/chunk-LJZSMWOH.js +18 -0
- package/chunks/{chunk-BKPPWD33.js → chunk-M2IL2RTA.js} +22 -2
- package/chunks/{chunk-N5YPT6PH.js → chunk-MHOY756Q.js} +25 -13
- package/chunks/{chunk-YP5KH5Y7.js → chunk-ND7NOI4P.js} +1 -1
- package/chunks/{chunk-AW4TRXOC.js → chunk-NP2LV67M.js} +1 -1
- package/chunks/{chunk-GGDBMYGZ.js → chunk-NQB52P65.js} +5 -5
- package/chunks/{chunk-E3DYKPYZ.js → chunk-NUGZAFR2.js} +3 -3
- package/chunks/{chunk-GMIEIY3Y.js → chunk-O5BDEWBC.js} +3 -3
- package/chunks/{chunk-GDXET5XU.js → chunk-O5Z7EB6Y.js} +3 -3
- package/chunks/{chunk-5EYKMUUY.js → chunk-OTXXOZKW.js} +1 -1
- package/chunks/{chunk-M732YJPW.js → chunk-PALTIYXB.js} +6 -6
- package/chunks/{chunk-7UXUJ5T3.js → chunk-PLECQWDB.js} +1 -1
- package/chunks/{chunk-MLPXSYXR.js → chunk-PMIKPGDF.js} +66 -32
- package/chunks/{chunk-IWPYVAO2.js → chunk-PSQJ24ZZ.js} +3 -3
- package/chunks/{chunk-CPHEPGAO.js → chunk-PZRUV52H.js} +2 -2
- package/chunks/{chunk-PP4FUZNV.js → chunk-Q7RPLE33.js} +2 -2
- package/chunks/{chunk-S5DWMTHO.js → chunk-QQUVPMMZ.js} +2 -0
- package/chunks/{chunk-JUEPY766.js → chunk-RNGTMHKN.js} +3 -3
- package/chunks/{chunk-TUGSVUJB.js → chunk-ROV6B34L.js} +6 -6
- package/chunks/{chunk-RVOJ2FBP.js → chunk-RPJOOK6N.js} +1576 -10633
- package/chunks/{chunk-AXN7UPYQ.js → chunk-RQJJZQOH.js} +2 -2
- package/chunks/{chunk-AFSG32D5.js → chunk-RRRCWDFO.js} +1 -1
- package/chunks/{chunk-2M55OBEB.js → chunk-S3G6YFQC.js} +1 -1
- package/chunks/{chunk-4S5337WV.js → chunk-SVU5KGR7.js} +6527 -3314
- package/chunks/chunk-TBVSALA3.js +1109 -0
- package/chunks/{chunk-QUGAUQGJ.js → chunk-TBWQLLFO.js} +2 -0
- package/chunks/{chunk-AS5IN4GK.js → chunk-THK3QUU6.js} +5 -5
- package/chunks/{chunk-JNDY2MDR.js → chunk-TLDZKNZP.js} +1 -1
- package/chunks/{chunk-ZZO74WKW.js → chunk-TNAIZBPQ.js} +115 -28
- package/chunks/{chunk-3Z43GZUQ.js → chunk-TXASDT2M.js} +1 -1
- package/chunks/{chunk-CZBYX5MY.js → chunk-U53XZHAE.js} +1 -1
- package/chunks/{chunk-HIBNSEJE.js → chunk-UDG5EZJI.js} +0 -2
- package/chunks/{chunk-QNQAPSN2.js → chunk-URN2JIAQ.js} +4 -1
- package/chunks/{chunk-EZ5RP345.js → chunk-UYQTX2P6.js} +44 -13
- package/chunks/{chunk-BZ263IKX.js → chunk-UZPYR3EV.js} +1 -1
- package/chunks/{chunk-YZOSNW4R.js → chunk-VFACN2CE.js} +1 -1
- package/chunks/{chunk-RWDNJBWN.js → chunk-VLRBJ24J.js} +2 -2
- package/chunks/{chunk-NHDR76JX.js → chunk-VMJL7RH6.js} +4 -4
- package/chunks/{chunk-E23IPNGS.js → chunk-VOTDAZR7.js} +35 -6
- package/chunks/{chunk-XLLKYULU.js → chunk-VSNPOSDN.js} +2 -2
- package/chunks/{chunk-25EYDK42.js → chunk-VUMLT7E5.js} +2 -2
- package/chunks/{chunk-H4A72DE5.js → chunk-W4CRPSC5.js} +1 -1
- package/chunks/{chunk-NM5V5OVW.js → chunk-WJJYJVQE.js} +3 -3
- package/chunks/{chunk-ROIYNTHJ.js → chunk-WRT324N6.js} +3 -3
- package/chunks/chunk-WZAD4ZNJ.js +59 -0
- package/chunks/{chunk-SG7ZP5PG.js → chunk-WZDM44SB.js} +4 -4
- package/chunks/{chunk-JE7KQ2UP.js → chunk-XIQ5HQ2F.js} +469 -77
- package/chunks/{chunk-QV5YN5YD.js → chunk-XJOHLP2A.js} +5 -5
- package/chunks/{chunk-XUJNK7Y6.js → chunk-XL5K4SVK.js} +1 -1
- package/chunks/{chunk-CKSJECTU.js → chunk-XZJKSETB.js} +9 -5
- package/chunks/{chunk-YEYY7TEP.js → chunk-Y2FEAXLP.js} +7 -7
- package/chunks/{chunk-2B2BF7P7.js → chunk-YDJRMQU4.js} +3 -3
- package/chunks/{chunk-46UV252V.js → chunk-YHC2EYYG.js} +35 -38
- package/chunks/{chunk-OVZPVYZB.js → chunk-YMVFIYHV.js} +96 -18
- package/chunks/{chunk-WGHHA7ZH.js → chunk-Z3JMO2CH.js} +1 -1
- package/chunks/{chunk-MA2HEDVP.js → chunk-ZRYQMWEP.js} +3 -3
- package/chunks/{chunk-IGGGG5CX.js → chunk-ZTAT23TL.js} +15948 -10201
- package/chunks/{computer-use-77C5FHMW.js → computer-use-H2T7IFYX.js} +55 -54
- package/chunks/{config-utils-IVHRSXWI.js → config-utils-3DY73VIJ.js} +2 -2
- package/chunks/contextCommand-5AAZFFFV.js +94 -0
- package/chunks/{core-runtime-7VMIKUTG.js → core-runtime-JWFNKO2S.js} +57 -55
- package/chunks/{create-sub-session-2L5MQRN4.js → create-sub-session-33HIYIJE.js} +58 -56
- package/chunks/{create-sub-session-KRQULJE6.js → create-sub-session-XBCVGNFU.js} +6 -4
- package/chunks/{cron-create-H7UEPDSN.js → cron-create-IKA56DAF.js} +5 -5
- package/chunks/{cron-delete-6SZK7YFM.js → cron-delete-K5Q62EGH.js} +5 -5
- package/chunks/{cron-list-H25JIHEZ.js → cron-list-QBFGAMP7.js} +5 -5
- package/chunks/{daemon-2KTG7ZBN.js → daemon-NNCQ3HWT.js} +806 -147
- package/chunks/{daemon-git-worktree-guard-DXYIMWFT.js → daemon-git-worktree-guard-6233JAPJ.js} +54 -53
- package/chunks/daemon-status-provider-3EI2KALQ.js +104 -0
- package/chunks/daemon-trust-policy-QWWU7CON.js +100 -0
- package/chunks/{daemon-trust-policy-monitor-RYYGCQ3J.js → daemon-trust-policy-monitor-FH7GBAKN.js} +60 -59
- package/chunks/{de-UBEBKG6V.js → de-AH4LGCF5.js} +8 -0
- package/chunks/{deferred-core-runtime-3SGXFXEQ.js → deferred-core-runtime-EDUZQRME.js} +52 -51
- package/chunks/{discovery-ORA5J7YP.js → discovery-X2NV535U.js} +1 -1
- package/chunks/{display-image-ON3EYFRD.js → display-image-OEJMJV3S.js} +5 -5
- package/chunks/{dist-YEPL4RAW.js → dist-5EV2G6MC.js} +2 -3
- package/chunks/{dist-MAQXAQ2Y.js → dist-EQ3Q5XHX.js} +45337 -32756
- package/chunks/{dist-WJ4BHIEW.js → dist-ESS34DHC.js} +72 -0
- package/chunks/{dist-JWMKPWT5.js → dist-EUOUPUFO.js} +3 -4
- package/chunks/{dist-IYYN3RUT.js → dist-UOFRXJT6.js} +2798 -1250
- package/chunks/{earlyInputCapture-KJMLFVQV.js → earlyInputCapture-VSP42LUR.js} +53 -52
- package/chunks/{edit-I4LQFAEC.js → edit-ZTLO5ASX.js} +60 -58
- package/chunks/{en-X6YV7GME.js → en-MD3GP5YL.js} +8 -0
- package/chunks/{enter-worktree-YNPOJSRH.js → enter-worktree-TMTPDS2S.js} +55 -54
- package/chunks/{enterPlanMode-XCPK62ER.js → enterPlanMode-UBAXFMYI.js} +55 -54
- package/chunks/{environment-S7CTIHMX.js → environment-C2CZN7CB.js} +55 -54
- package/chunks/{errors-7HB2AIDS.js → errors-ZUNFQINF.js} +54 -53
- package/chunks/{exit-worktree-AIIY7SR6.js → exit-worktree-572NWEPJ.js} +55 -54
- package/chunks/exitPlanMode-QTIXFGZT.js +86 -0
- package/chunks/{fast-path-NDJV3ZFJ.js → fast-path-CEEVHQL3.js} +3 -3
- package/chunks/{fast-path-settings-LNOFM2YP.js → fast-path-settings-WHX3J3ZI.js} +2 -2
- package/chunks/{fr-VENTC2BS.js → fr-ZEML2JWS.js} +8 -0
- package/chunks/{gemini-RSUFP5OE.js → gemini-I2YR6GMS.js} +114 -112
- package/chunks/{geminiContentGenerator-SQ5XBPZ7.js → geminiContentGenerator-GQWNDZQF.js} +7 -7
- package/chunks/getMachineId-bsd-FBOAYNSY.js +48 -0
- package/chunks/{getMachineId-bsd-FG7IUY6U.js → getMachineId-bsd-YH7RURBZ.js} +4 -4
- package/chunks/{getMachineId-darwin-GLCJI2RA.js → getMachineId-darwin-H6USQYNI.js} +4 -4
- package/chunks/getMachineId-darwin-RNJLJUXY.js +47 -0
- package/chunks/{getMachineId-linux-O6OPPAKO.js → getMachineId-linux-HF2N63ET.js} +3 -3
- package/chunks/getMachineId-linux-UEVRAIAB.js +41 -0
- package/chunks/getMachineId-unsupported-FWXYJ7HW.js +31 -0
- package/chunks/{getMachineId-unsupported-S6CKYVGC.js → getMachineId-unsupported-NYA5DXRB.js} +3 -3
- package/chunks/getMachineId-win-LRVGMHLW.js +50 -0
- package/chunks/{getMachineId-win-X5SRNEH7.js → getMachineId-win-SMEGY2DW.js} +4 -4
- package/chunks/{glob-J4RUJAHX.js → glob-XFBL2RVT.js} +58 -57
- package/chunks/{goal-tools-VHTNVOKK.js → goal-tools-TLJCE7YZ.js} +6 -6
- package/chunks/{grep-VJWPLFOT.js → grep-U675LEXE.js} +55 -54
- package/chunks/handleAutoUpdate-R6RUCIA2.js +97 -0
- package/chunks/{i18n-RM5YOICI.js → i18n-SJCZDZ4C.js} +53 -52
- package/chunks/{image-gen-EXECB5XM.js → image-gen-6VY7CA7C.js} +14 -14
- package/chunks/initializer-CRDZXJOG.js +101 -0
- package/chunks/installationInfo-EW3NEJDZ.js +95 -0
- package/chunks/{ja-QHT4EQTO.js → ja-UM5B2HMD.js} +8 -0
- package/chunks/{keychain-token-storage-3XFJ5ZB2.js → keychain-token-storage-MTFTAESK.js} +3 -3
- package/chunks/list-TZEMTXDH.js +104 -0
- package/chunks/{list-agents-OSVDFI6S.js → list-agents-43XUEXJV.js} +6 -6
- package/chunks/loadedSettingsAdapter-47DG424L.js +98 -0
- package/chunks/{loggingContentGenerator-WF4ZOJEZ.js → loggingContentGenerator-77C6O5VW.js} +31 -29
- package/chunks/{loop-wakeup-WQS6JYAG.js → loop-wakeup-E54KDUXC.js} +6 -6
- package/chunks/{ls-D3HUFHDP.js → ls-CGL2UC3H.js} +7 -7
- package/chunks/{lsp-3QDDJTCS.js → lsp-5IKUO5DX.js} +3 -3
- package/chunks/{managed-npm-update-E7IW6N7V.js → managed-npm-update-AJ5GZRUA.js} +53 -52
- package/chunks/mcp-AQK656Y4.js +98 -0
- package/chunks/{monitor-EE2UYMGE.js → monitor-UDZXKYT3.js} +55 -54
- package/chunks/nonInteractiveCli-6NC3NLZM.js +166 -0
- package/chunks/{notebook-edit-NTDY4QDU.js → notebook-edit-G6WZI2YT.js} +59 -57
- package/chunks/{openaiContentGenerator-YNFVJMRJ.js → openaiContentGenerator-IHVHP3VB.js} +32 -32
- package/chunks/{pidfile-4XSFLYBZ.js → pidfile-EBKS2HBK.js} +53 -52
- package/chunks/{processUtils-WDA2MJFD.js → processUtils-B7M35ZLR.js} +2 -2
- package/chunks/prompt-terminal-ledger-5JYOPOII.js +93 -0
- package/chunks/{pt-VL3I5RNY.js → pt-5BMJ3XYH.js} +8 -0
- package/chunks/{qwenContentGenerator-434M7QKY.js → qwenContentGenerator-WCJPPTED.js} +59 -58
- package/chunks/{qwenOAuth2-GMYZOO6A.js → qwenOAuth2-S2CLBSEZ.js} +10 -10
- package/chunks/read-file-WFM53FTW.js +33 -0
- package/chunks/{read-mcp-resource-XD54ZQMC.js → read-mcp-resource-XYES2B42.js} +3 -3
- package/chunks/{record-artifact-SEYFJEJF.js → record-artifact-W3IBTGL7.js} +10 -6
- package/chunks/{resumeHistoryUtils-EVG3WYK2.js → resumeHistoryUtils-CK4ZC6YO.js} +59 -58
- package/chunks/ripGrep-B3PBLEQ3.js +86 -0
- package/chunks/{ru-4RCKL4PY.js → ru-6GL66ORV.js} +8 -0
- package/chunks/{run-qwen-serve-3QSGRXAN.js → run-qwen-serve-DC5RXI6N.js} +537 -185
- package/chunks/{runtime-5MLLZ7DC.js → runtime-UVEETF54.js} +63 -62
- package/chunks/{scheduler-RPBJ63CH.js → scheduler-MWT3UMVN.js} +54 -53
- package/chunks/{sdk-exporters-grpc-54L4LS5L.js → sdk-exporters-grpc-6J5CKOMO.js} +194 -75
- package/chunks/{sdk-exporters-http-XUVP63H6.js → sdk-exporters-http-Q3YZ4752.js} +40 -45
- package/chunks/{sdk-impl-YXUEN2Z2.js → sdk-impl-BOMCAN2Z.js} +7211 -5454
- package/chunks/{send-message-VZENRWRH.js → send-message-J4VT46OI.js} +8 -8
- package/chunks/{serve-HS3XLPXU.js → serve-AKM75GTE.js} +60 -61
- package/chunks/{server-TC4A7AAZ.js → server-KU7XIDVT.js} +2221 -399
- package/chunks/{session-UBOFXVMN.js → session-DKVYIRWN.js} +108 -105
- package/chunks/{settings-D5644OM5.js → settings-NS3PXZDP.js} +63 -62
- package/chunks/{shell-3PZULQQV.js → shell-UXCNM2OK.js} +52 -51
- package/chunks/{skill-PEVVXQ3L.js → skill-KV7YCCTM.js} +30 -28
- package/chunks/{skill-settings-J65JKKES.js → skill-settings-EXW7ESWJ.js} +59 -58
- package/chunks/{spawnChannel-IYGXRHSQ.js → spawnChannel-FCP44P4V.js} +55 -54
- package/chunks/{standalone-update-IFM53PE7.js → standalone-update-RGW3B2DX.js} +55 -54
- package/chunks/{startInteractiveUI-3AVH7L6H.js → startInteractiveUI-UZMF2BIJ.js} +615 -392
- package/chunks/{syntheticOutput-7GWFIDXT.js → syntheticOutput-JAXMIMZP.js} +4 -4
- package/chunks/{task-create-FCBDX7UH.js → task-create-I2H322E4.js} +12 -12
- package/chunks/{task-list-YIYIUFUA.js → task-list-3OLIWFTQ.js} +21 -7
- package/chunks/{task-stop-X37KYTKB.js → task-stop-JAUY6MSY.js} +3 -3
- package/chunks/{task-update-MYPFVOVM.js → task-update-B3XO4CPI.js} +87 -16
- package/chunks/{team-create-ZAIA7KAV.js → team-create-77XY3KAE.js} +56 -56
- package/chunks/{team-delete-6UMU4XLS.js → team-delete-Q7GE7RRI.js} +6 -6
- package/chunks/{team-plan-approval-UNIUS7OD.js → team-plan-approval-TAQANDQG.js} +55 -54
- package/chunks/{terminal-image-renderer-G343P2RV.js → terminal-image-renderer-V4LIF5NS.js} +54 -53
- package/chunks/theme-manager-KKBAJ574.js +90 -0
- package/chunks/{todoWrite-U2R4NVF4.js → todoWrite-FJJTY2TI.js} +7 -7
- package/chunks/{tool-search-5R2OE4C7.js → tool-search-GZJYRK4I.js} +25 -24
- package/chunks/{total-session-admission-4KBHMQQ2.js → total-session-admission-NIBNWXHE.js} +59 -57
- package/chunks/{trustedFolders-LK6T4XC7.js → trustedFolders-7GEI2NYC.js} +53 -52
- package/chunks/{undici-PYHBDDPN.js → undici-S7WJSKGJ.js} +962 -391
- package/chunks/{update-relaunch-UBKROIC6.js → update-relaunch-OA3OEBMD.js} +5 -5
- package/chunks/{updateCheck-W4Y2GFSD.js → updateCheck-QVHQEVIY.js} +56 -55
- package/chunks/{useAutoAcceptIndicator-C7BEICBF.js → useAutoAcceptIndicator-WZ27J7NY.js} +64 -63
- package/chunks/{validateNonInterActiveAuth-LTEI2TB6.js → validateNonInterActiveAuth-OXJA2JWG.js} +99 -96
- package/chunks/{version-G5A5DGVS.js → version-KJO64WD7.js} +1 -1
- package/chunks/{web-fetch-RTEQTR5Z.js → web-fetch-CC5INI2R.js} +25 -23
- package/chunks/{web-search-5OXHEZPV.js → web-search-MOAUAN6N.js} +18 -18
- package/chunks/{web-shell-static-O73YPVVC.js → web-shell-static-3NUTRHAH.js} +4 -5
- package/chunks/{workflow-ISQJHPG2.js → workflow-BN2ZEJMK.js} +366 -105
- package/chunks/workspace-providers-status-R5QTZFK3.js +101 -0
- package/chunks/{workspace-registration-store-CYNY6IP6.js → workspace-registration-store-WMSLM36M.js} +1 -1
- package/chunks/{workspace-registry-34GTUUHB.js → workspace-registry-J3RUCXH6.js} +59 -57
- package/chunks/{workspace-service-XCDQLE2Y.js → workspace-service-JJZFPKM4.js} +66 -65
- package/chunks/workspace-skills-status-DRIOZRIA.js +101 -0
- package/chunks/{workspace-trust-reconciler-AYGXC7A3.js → workspace-trust-reconciler-YAYSN6CX.js} +69 -67
- package/chunks/write-file-7HXHFFOY.js +88 -0
- package/chunks/{zh-TW-SQ4HTSCW.js → zh-TW-LVLBK4KF.js} +8 -0
- package/chunks/{zh-LMSTK4WD.js → zh-UBMWS2BJ.js} +8 -0
- package/chunks/{zoom-image-4BFYJ3HG.js → zoom-image-EFMQMU4G.js} +24 -22
- package/cli.js +15 -15
- package/locales/ca.js +13 -0
- package/locales/de.js +12 -0
- package/locales/en.js +11 -0
- package/locales/fr.js +13 -0
- package/locales/ja.js +13 -0
- package/locales/pt.js +12 -0
- package/locales/ru.js +12 -0
- package/locales/zh-TW.js +11 -0
- package/locales/zh.js +11 -0
- package/package.json +3 -3
- package/web-shell/assets/{arc-CgOpDKvm.js → arc-BCP1f-bN.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-0Ag_m34F.js → architectureDiagram-3BPJPVTR-D-6ajMay.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-IwTwFau0.js → blockDiagram-GPEHLZMM-CcLlnVnf.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-DLa5GUv8.js → c4Diagram-AAUBKEIU-C_Sp9UwQ.js} +1 -1
- package/web-shell/assets/channel-BcImYzbA.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-DcYP-WFG.js → chunk-2J33WTMH-CG0ngvo9.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-C8MVPMiQ.js → chunk-4BX2VUAB-D43LsVdk.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-BUi4Yfv3.js → chunk-55IACEB6-BqNIn5rz.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-Cy3Su2YY.js → chunk-727SXJPM-BSHmO08Y.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-Dp8Teqv6.js → chunk-AQP2D5EJ-CMUbr5tQ.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-BDTDM-4j.js → chunk-FMBD7UC4-Cm6JflnZ.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-7HfDt0r2.js → chunk-ND2GUHAM-CBR39YQZ.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-BIBU0uCF.js → chunk-QZHKN3VN-CWnqaLb-.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-OWx0rDRW.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-OWx0rDRW.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-DRLdcg9p.js → cose-bilkent-S5V4N54A-DJlTdnfD.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-DCCgDwqW.js → dagre-BM42HDAG-1AFN1uVc.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-CsBTBmk3.js → diagram-2AECGRRQ-gC0GGNSW.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-C9qjH8Lt.js → diagram-5GNKFQAL-CPmRPT1s.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-Brjs_lj2.js → diagram-KO2AKTUF-atigp6Hr.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-DtiWCl_F.js → diagram-LMA3HP47-BJnJFSRQ.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-DmfKLkBT.js → diagram-OG6HWLK6-CyvJ4fG2.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-Bve_4deH.js → erDiagram-TEJ5UH35-CZac_jT6.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-C2_kXCcV.js → flowDiagram-I6XJVG4X-pd-LQxWB.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-BSBIjiTF.js → ganttDiagram-6RSMTGT7-CvB1at7l.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-CyebwI55.js → gitGraphDiagram-PVQCEYII-B5Y6nkil.js} +1 -1
- package/web-shell/assets/index-Bg3DAn8Z.js +1788 -0
- package/web-shell/assets/{index-d0yfnV1M.js → index-Bj3ZSUHL.js} +1 -1
- package/web-shell/assets/index-mp32EO88.css +5 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-CSDGnWxU.js → infoDiagram-5YYISTIA-BdyWvU4P.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-BK4jU13p.js → ishikawaDiagram-YF4QCWOH-CaHbUdvN.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-D_W6j-oF.js → journeyDiagram-JHISSGLW-DR9F3FpG.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-C7xf-SdC.js → kanban-definition-UN3LZRKU-BoEUbkw2.js} +1 -1
- package/web-shell/assets/{linear-DQmzxpxd.js → linear-DUbfzV4T.js} +1 -1
- package/web-shell/assets/{mermaid.core-9P7AGOLG.js → mermaid.core-CLLkPcpD.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-DgcgMyPk.js → mindmap-definition-RKZ34NQL-FuKI3Stt.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-3wWGb9eG.js → pieDiagram-4H26LBE5-CVAHL7l5.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-BeCXnQw9.js → quadrantDiagram-W4KKPZXB-BkGi5fRj.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-Bi1UOHDz.js → requirementDiagram-4Y6WPE33-B5ghV8-K.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-lrLUjjbb.js → sankeyDiagram-5OEKKPKP-CKFbVhkQ.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-BFuqKz6Q.js → sequenceDiagram-3UESZ5HK-C5P9ujPd.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-8DemQLhu.js → stateDiagram-AJRCARHV-CsDn-Rez.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DpGKD1ez.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-uzEuVQXg.js → timeline-definition-PNZ67QCA-B6oLBkTr.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-BQTeZ_-o.js → vennDiagram-CIIHVFJN-DvtBkYwp.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-B6yM5Im7.js → wardley-L42UT6IY-D2UwTX16.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-ChM8bmgn.js → wardleyDiagram-YWT4CUSO-FnnfCxYI.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-oNG6HyB1.js → xychartDiagram-2RQKCTM6-C1SaMQ7d.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/MaxSizedBox-UQALOVVT.js +0 -97
- package/chunks/agent-headless-GJCQMURW.js +0 -87
- package/chunks/channel-settings-store-WNWYFHG7.js +0 -102
- package/chunks/chunk-AZQ3DT76.js +0 -10017
- package/chunks/chunk-CR3C7WXL.js +0 -113
- package/chunks/chunk-K5IDV3PC.js +0 -519
- package/chunks/chunk-MPHPFVKK.js +0 -48
- package/chunks/chunk-RLKC46YT.js +0 -3582
- package/chunks/chunk-UPDOZBWO.js +0 -358
- package/chunks/contextCommand-PJ77GBWL.js +0 -93
- package/chunks/daemon-status-provider-ZDOYJCU6.js +0 -102
- package/chunks/daemon-trust-policy-E67OYUK2.js +0 -99
- package/chunks/exitPlanMode-R4JY7V2O.js +0 -85
- package/chunks/handleAutoUpdate-POCX2MNB.js +0 -94
- package/chunks/initializer-Z2AFGBNR.js +0 -100
- package/chunks/installationInfo-4I5FXNMH.js +0 -92
- package/chunks/list-ZMBFIGZA.js +0 -103
- package/chunks/loadedSettingsAdapter-T6TV4YJ7.js +0 -97
- package/chunks/mcp-6UNYX4HG.js +0 -97
- package/chunks/nonInteractiveCli-WAY237O4.js +0 -163
- package/chunks/read-file-TAFBKMNI.js +0 -32
- package/chunks/ripGrep-WOEK2PXS.js +0 -85
- package/chunks/theme-manager-Z3RIT7DB.js +0 -89
- package/chunks/undici-3FJYTMOF.js +0 -25914
- package/chunks/workspace-providers-status-2ZPZPUPZ.js +0 -100
- package/chunks/workspace-skills-status-RS4O7AIJ.js +0 -100
- package/chunks/write-file-EWXKVVXF.js +0 -87
- package/web-shell/assets/channel-BrGVBa2L.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-B5TUzJzI.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-B5TUzJzI.js +0 -1
- package/web-shell/assets/index-CIDsgxTe.js +0 -1792
- package/web-shell/assets/index-DiQnWi_E.css +0 -5
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DhM5ixYd.js +0 -1
- package/chunks/{dist-BROOP2EG.js → dist-LZO24N3E.js} +1 -1
|
@@ -2,29 +2,35 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
performStandaloneUpdate
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-J7VPB2HF.js";
|
|
6
6
|
import {
|
|
7
7
|
updateEventEmitter
|
|
8
8
|
} from "./chunk-YAF2MQZ6.js";
|
|
9
9
|
import {
|
|
10
|
+
t
|
|
11
|
+
} from "./chunk-45UD2TU4.js";
|
|
12
|
+
import {
|
|
13
|
+
require_semver
|
|
14
|
+
} from "./chunk-2AUM35J5.js";
|
|
15
|
+
import {
|
|
16
|
+
getHomebrewLatestVersion,
|
|
10
17
|
getInstallationInfo,
|
|
11
18
|
resolveUpdateCommand
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import {
|
|
14
|
-
t
|
|
15
|
-
} from "./chunk-HUTNYWBG.js";
|
|
19
|
+
} from "./chunk-M2IL2RTA.js";
|
|
16
20
|
import {
|
|
17
21
|
createDebugLogger
|
|
18
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-A5F2YNO6.js";
|
|
19
23
|
import {
|
|
20
24
|
init_esbuild_shims
|
|
21
25
|
} from "./chunk-5O2XNYP6.js";
|
|
22
26
|
import {
|
|
23
|
-
__name
|
|
27
|
+
__name,
|
|
28
|
+
__toESM
|
|
24
29
|
} from "./chunk-J2S4EL5Y.js";
|
|
25
30
|
|
|
26
31
|
// packages/cli/src/utils/handleAutoUpdate.ts
|
|
27
32
|
init_esbuild_shims();
|
|
33
|
+
var import_semver = __toESM(require_semver(), 1);
|
|
28
34
|
|
|
29
35
|
// packages/cli/src/utils/spawnWrapper.ts
|
|
30
36
|
init_esbuild_shims();
|
|
@@ -36,7 +42,7 @@ import os from "node:os";
|
|
|
36
42
|
var debugLogger = createDebugLogger("AUTO_UPDATE");
|
|
37
43
|
var UPDATE_SUCCESS_MESSAGE = "Update successful! The new version will be used on your next run.";
|
|
38
44
|
var UPDATE_FAILED_MESSAGE = "Automatic update failed. Please try updating manually.";
|
|
39
|
-
function handleAutoUpdate(info, settings, projectRoot, spawnFn = spawnWrapper) {
|
|
45
|
+
async function handleAutoUpdate(info, settings, projectRoot, spawnFn = spawnWrapper) {
|
|
40
46
|
if (!info) {
|
|
41
47
|
return;
|
|
42
48
|
}
|
|
@@ -45,10 +51,19 @@ function handleAutoUpdate(info, settings, projectRoot, spawnFn = spawnWrapper) {
|
|
|
45
51
|
projectRoot,
|
|
46
52
|
isAutoUpdateEnabled
|
|
47
53
|
);
|
|
54
|
+
if (installationInfo.packageManager === "homebrew" /* HOMEBREW */) {
|
|
55
|
+
const installedVersion = import_semver.default.coerce(info.update.current)?.version;
|
|
56
|
+
const brewLatestVersion = import_semver.default.coerce(
|
|
57
|
+
await getHomebrewLatestVersion() ?? void 0
|
|
58
|
+
)?.version;
|
|
59
|
+
if (installedVersion && brewLatestVersion && !import_semver.default.gt(brewLatestVersion, installedVersion)) {
|
|
60
|
+
return;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
48
63
|
let combinedMessage = info.message;
|
|
49
64
|
if (installationInfo.updateMessage) {
|
|
50
65
|
combinedMessage += `
|
|
51
|
-
${installationInfo.updateMessage}`;
|
|
66
|
+
${t(installationInfo.updateMessage)}`;
|
|
52
67
|
}
|
|
53
68
|
updateEventEmitter.emit("update-received", {
|
|
54
69
|
message: combinedMessage
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
wrapForMultiplexer
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-O5BDEWBC.js";
|
|
6
6
|
import {
|
|
7
7
|
createDebugLogger
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-A5F2YNO6.js";
|
|
9
9
|
import {
|
|
10
10
|
init_esbuild_shims
|
|
11
11
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -19,15 +19,15 @@ import {
|
|
|
19
19
|
taskHasLegacyCondition,
|
|
20
20
|
taskHasLegacyRunMode,
|
|
21
21
|
updateCronTasks
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-AZF6SME3.js";
|
|
23
23
|
import {
|
|
24
24
|
ToolNames
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-6NFAEG54.js";
|
|
26
26
|
import {
|
|
27
27
|
Storage,
|
|
28
28
|
createDebugLogger,
|
|
29
29
|
getProjectHash
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-A5F2YNO6.js";
|
|
31
31
|
import {
|
|
32
32
|
init_esbuild_shims
|
|
33
33
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
} from "./chunk-NYWWQ437.js";
|
|
18
18
|
import {
|
|
19
19
|
CLIENT_MCP_OVER_WS_CONFIG_FLAG
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-QQUVPMMZ.js";
|
|
21
21
|
import {
|
|
22
22
|
MAX_WORKSPACE_PATH_LENGTH,
|
|
23
23
|
translateAndCheckAbsoluteWorkspacePath
|
|
@@ -29,7 +29,7 @@ import {
|
|
|
29
29
|
ROOT_CONTEXT,
|
|
30
30
|
context,
|
|
31
31
|
init_esm
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-TBWQLLFO.js";
|
|
33
33
|
import {
|
|
34
34
|
init_esbuild_shims
|
|
35
35
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -923,9 +923,107 @@ function isDeepHealthQuery(raw) {
|
|
|
923
923
|
}
|
|
924
924
|
__name(isDeepHealthQuery, "isDeepHealthQuery");
|
|
925
925
|
|
|
926
|
-
// packages/cli/src/serve/
|
|
926
|
+
// packages/cli/src/serve/local-control/credentials.ts
|
|
927
927
|
init_esbuild_shims();
|
|
928
928
|
import { createHash, timingSafeEqual } from "node:crypto";
|
|
929
|
+
var CredentialStore = class {
|
|
930
|
+
static {
|
|
931
|
+
__name(this, "CredentialStore");
|
|
932
|
+
}
|
|
933
|
+
#runtime;
|
|
934
|
+
/** Pairing id → sha256 of the pairing secret. */
|
|
935
|
+
#pairing = /* @__PURE__ */ new Map();
|
|
936
|
+
constructor(runtimeToken) {
|
|
937
|
+
this.#runtime = hashToken(runtimeToken);
|
|
938
|
+
}
|
|
939
|
+
addPairingToken(id, token) {
|
|
940
|
+
this.#pairing.set(id, createHash("sha256").update(token, "utf8").digest());
|
|
941
|
+
}
|
|
942
|
+
revokePairingToken(id) {
|
|
943
|
+
return this.#pairing.delete(id);
|
|
944
|
+
}
|
|
945
|
+
/**
|
|
946
|
+
* Is the gate open — i.e. may an unauthenticated request through?
|
|
947
|
+
*
|
|
948
|
+
* Only ever true on the primary listener of a no-token loopback daemon,
|
|
949
|
+
* preserving today's developer default. The LAN listener is never open: it
|
|
950
|
+
* exists only while a pairing token does, and it must not inherit the
|
|
951
|
+
* "operator chose the surface area" reasoning that governs `--hostname`.
|
|
952
|
+
*/
|
|
953
|
+
isOpen(listener) {
|
|
954
|
+
if (listener.kind === "local-control") return false;
|
|
955
|
+
return this.#runtime === void 0;
|
|
956
|
+
}
|
|
957
|
+
/**
|
|
958
|
+
* Constant-time check of a presented credential against those valid for
|
|
959
|
+
* `listener`. Every candidate in scope is compared even after a match so the
|
|
960
|
+
* work is independent of which credential matched — with a handful of
|
|
961
|
+
* pairing tokens the cost is negligible and the timing signal is not worth
|
|
962
|
+
* reasoning about separately.
|
|
963
|
+
*/
|
|
964
|
+
verify(credentials, listener) {
|
|
965
|
+
const candidate = createHash("sha256").update(credentials, "utf8").digest();
|
|
966
|
+
let matched = false;
|
|
967
|
+
if (listener.kind === "local-control") {
|
|
968
|
+
for (const expected of this.#pairing.values()) {
|
|
969
|
+
if (equalDigest(candidate, expected)) matched = true;
|
|
970
|
+
}
|
|
971
|
+
return matched;
|
|
972
|
+
}
|
|
973
|
+
return this.#runtime !== void 0 && equalDigest(candidate, this.#runtime);
|
|
974
|
+
}
|
|
975
|
+
};
|
|
976
|
+
function singleTokenCredentials(token) {
|
|
977
|
+
const expected = hashToken(token);
|
|
978
|
+
return {
|
|
979
|
+
isOpen: /* @__PURE__ */ __name((listener) => expected === void 0 && listener.kind !== "local-control", "isOpen"),
|
|
980
|
+
verify: /* @__PURE__ */ __name((candidate, listener) => {
|
|
981
|
+
if (expected === void 0 || listener.kind === "local-control") {
|
|
982
|
+
return false;
|
|
983
|
+
}
|
|
984
|
+
return equalDigest(
|
|
985
|
+
createHash("sha256").update(candidate, "utf8").digest(),
|
|
986
|
+
expected
|
|
987
|
+
);
|
|
988
|
+
}, "verify")
|
|
989
|
+
};
|
|
990
|
+
}
|
|
991
|
+
__name(singleTokenCredentials, "singleTokenCredentials");
|
|
992
|
+
function hashToken(token) {
|
|
993
|
+
return token === void 0 || token === "" ? void 0 : createHash("sha256").update(token, "utf8").digest();
|
|
994
|
+
}
|
|
995
|
+
__name(hashToken, "hashToken");
|
|
996
|
+
function equalDigest(a, b) {
|
|
997
|
+
return a.length === b.length && timingSafeEqual(a, b);
|
|
998
|
+
}
|
|
999
|
+
__name(equalDigest, "equalDigest");
|
|
1000
|
+
|
|
1001
|
+
// packages/cli/src/serve/local-control/listener-identity.ts
|
|
1002
|
+
init_esbuild_shims();
|
|
1003
|
+
var LISTENER_TAG = Symbol.for("qwen.serve.listenerIdentity");
|
|
1004
|
+
function tagListener(server, identity) {
|
|
1005
|
+
server[LISTENER_TAG] = identity;
|
|
1006
|
+
}
|
|
1007
|
+
__name(tagListener, "tagListener");
|
|
1008
|
+
var PRIMARY = { kind: "primary" };
|
|
1009
|
+
function fromServer(server) {
|
|
1010
|
+
if (!server || typeof server !== "object") return void 0;
|
|
1011
|
+
return server[LISTENER_TAG];
|
|
1012
|
+
}
|
|
1013
|
+
__name(fromServer, "fromServer");
|
|
1014
|
+
function listenerIdentityOf(req) {
|
|
1015
|
+
const socket = req.socket;
|
|
1016
|
+
return fromServer(socket?.server) ?? PRIMARY;
|
|
1017
|
+
}
|
|
1018
|
+
__name(listenerIdentityOf, "listenerIdentityOf");
|
|
1019
|
+
function listenerIdentityOfSocket(socket) {
|
|
1020
|
+
const withServer = socket;
|
|
1021
|
+
return fromServer(withServer?.server) ?? PRIMARY;
|
|
1022
|
+
}
|
|
1023
|
+
__name(listenerIdentityOfSocket, "listenerIdentityOfSocket");
|
|
1024
|
+
|
|
1025
|
+
// packages/cli/src/serve/auth.ts
|
|
1026
|
+
init_esbuild_shims();
|
|
929
1027
|
var denyBrowserOriginCors = /* @__PURE__ */ __name((req, res, next) => {
|
|
930
1028
|
if (req.headers.origin) {
|
|
931
1029
|
res.setHeader("Vary", "Origin");
|
|
@@ -973,7 +1071,42 @@ function parseAllowOriginPatterns(raw) {
|
|
|
973
1071
|
return { allowAny, origins };
|
|
974
1072
|
}
|
|
975
1073
|
__name(parseAllowOriginPatterns, "parseAllowOriginPatterns");
|
|
1074
|
+
var MutableOriginAllowlist = class {
|
|
1075
|
+
static {
|
|
1076
|
+
__name(this, "MutableOriginAllowlist");
|
|
1077
|
+
}
|
|
1078
|
+
#allowAny;
|
|
1079
|
+
#static;
|
|
1080
|
+
#dynamic = /* @__PURE__ */ new Map();
|
|
1081
|
+
constructor(base) {
|
|
1082
|
+
this.#allowAny = base.allowAny;
|
|
1083
|
+
this.#static = new Set(base.origins);
|
|
1084
|
+
}
|
|
1085
|
+
allows(origin) {
|
|
1086
|
+
if (this.#allowAny) return true;
|
|
1087
|
+
const normalized = origin.toLowerCase();
|
|
1088
|
+
if (this.#static.has(normalized)) return true;
|
|
1089
|
+
for (const value of this.#dynamic.values()) {
|
|
1090
|
+
if (value === normalized) return true;
|
|
1091
|
+
}
|
|
1092
|
+
return false;
|
|
1093
|
+
}
|
|
1094
|
+
/** Add a runtime origin under `key`; re-adding the same key replaces it. */
|
|
1095
|
+
add(key, origin) {
|
|
1096
|
+
this.#dynamic.set(key, origin.toLowerCase());
|
|
1097
|
+
}
|
|
1098
|
+
remove(key) {
|
|
1099
|
+
this.#dynamic.delete(key);
|
|
1100
|
+
}
|
|
1101
|
+
};
|
|
1102
|
+
function toMatcher(patterns) {
|
|
1103
|
+
return "allows" in patterns ? patterns : {
|
|
1104
|
+
allows: /* @__PURE__ */ __name((origin) => patterns.allowAny || patterns.origins.has(origin.toLowerCase()), "allows")
|
|
1105
|
+
};
|
|
1106
|
+
}
|
|
1107
|
+
__name(toMatcher, "toMatcher");
|
|
976
1108
|
function allowOriginCors(patterns) {
|
|
1109
|
+
const matcher = toMatcher(patterns);
|
|
977
1110
|
const allowedMethods = "GET, POST, PATCH, DELETE, OPTIONS";
|
|
978
1111
|
const allowedHeaders = "Authorization, Content-Type, X-Qwen-Client-Id, Last-Event-ID, X-Qwen-Event-Epoch";
|
|
979
1112
|
const maxAgeSeconds = "86400";
|
|
@@ -989,7 +1122,7 @@ function allowOriginCors(patterns) {
|
|
|
989
1122
|
res.status(403).json({ error: "Request denied by CORS policy" });
|
|
990
1123
|
return;
|
|
991
1124
|
}
|
|
992
|
-
const matched =
|
|
1125
|
+
const matched = matcher.allows(origin);
|
|
993
1126
|
if (matched) {
|
|
994
1127
|
res.setHeader("Access-Control-Allow-Origin", origin);
|
|
995
1128
|
res.setHeader("Vary", "Origin");
|
|
@@ -1010,6 +1143,24 @@ function allowOriginCors(patterns) {
|
|
|
1010
1143
|
}
|
|
1011
1144
|
__name(allowOriginCors, "allowOriginCors");
|
|
1012
1145
|
function hostAllowlist(bind, getPort) {
|
|
1146
|
+
const primaryGate = buildPrimaryHostGate(bind, getPort);
|
|
1147
|
+
return (req, res, next) => {
|
|
1148
|
+
const listener = listenerIdentityOf(req);
|
|
1149
|
+
if (listener.kind !== "local-control") {
|
|
1150
|
+
primaryGate(req, res, next);
|
|
1151
|
+
return;
|
|
1152
|
+
}
|
|
1153
|
+
const host = (req.headers.host || "").toLowerCase();
|
|
1154
|
+
const browserHost = listener.origin === void 0 ? void 0 : new URL(listener.origin).host.toLowerCase();
|
|
1155
|
+
if (listener.authority === void 0 || host !== listener.authority && host !== browserHost) {
|
|
1156
|
+
res.status(403).json({ error: "Invalid Host header" });
|
|
1157
|
+
return;
|
|
1158
|
+
}
|
|
1159
|
+
next();
|
|
1160
|
+
};
|
|
1161
|
+
}
|
|
1162
|
+
__name(hostAllowlist, "hostAllowlist");
|
|
1163
|
+
function buildPrimaryHostGate(bind, getPort) {
|
|
1013
1164
|
if (!isLoopbackBind(bind)) {
|
|
1014
1165
|
return (_req, _res, next) => next();
|
|
1015
1166
|
}
|
|
@@ -1042,13 +1193,15 @@ function hostAllowlist(bind, getPort) {
|
|
|
1042
1193
|
next();
|
|
1043
1194
|
};
|
|
1044
1195
|
}
|
|
1045
|
-
__name(
|
|
1046
|
-
function bearerAuth(
|
|
1047
|
-
|
|
1048
|
-
return (_req, _res, next) => next();
|
|
1049
|
-
}
|
|
1050
|
-
const expected = createHash("sha256").update(token, "utf8").digest();
|
|
1196
|
+
__name(buildPrimaryHostGate, "buildPrimaryHostGate");
|
|
1197
|
+
function bearerAuth(source) {
|
|
1198
|
+
const credentials = typeof source === "object" && source !== null ? source : singleTokenCredentials(source);
|
|
1051
1199
|
return (req, res, next) => {
|
|
1200
|
+
const listener = listenerIdentityOf(req);
|
|
1201
|
+
if (credentials.isOpen(listener)) {
|
|
1202
|
+
next();
|
|
1203
|
+
return;
|
|
1204
|
+
}
|
|
1052
1205
|
const header = req.headers.authorization;
|
|
1053
1206
|
if (!header) {
|
|
1054
1207
|
res.status(401).json({ error: "Unauthorized" });
|
|
@@ -1068,26 +1221,35 @@ function bearerAuth(token) {
|
|
|
1068
1221
|
while (credStart < header.length && (header.charCodeAt(credStart) === 32 || header.charCodeAt(credStart) === 9)) {
|
|
1069
1222
|
credStart++;
|
|
1070
1223
|
}
|
|
1071
|
-
const
|
|
1072
|
-
if (
|
|
1224
|
+
const presented = header.slice(credStart);
|
|
1225
|
+
if (presented.length === 0) {
|
|
1073
1226
|
res.status(401).json({ error: "Unauthorized" });
|
|
1074
1227
|
return;
|
|
1075
1228
|
}
|
|
1076
|
-
|
|
1077
|
-
if (!timingSafeEqual(candidate, expected)) {
|
|
1229
|
+
if (!credentials.verify(presented, listener)) {
|
|
1078
1230
|
res.status(401).json({ error: "Unauthorized" });
|
|
1079
1231
|
return;
|
|
1080
1232
|
}
|
|
1233
|
+
req[AUTHENTICATED_REQUEST] = true;
|
|
1081
1234
|
next();
|
|
1082
1235
|
};
|
|
1083
1236
|
}
|
|
1084
1237
|
__name(bearerAuth, "bearerAuth");
|
|
1238
|
+
var AUTHENTICATED_REQUEST = Symbol("qwen.serve.authenticatedRequest");
|
|
1239
|
+
function requestWasAuthenticated(req) {
|
|
1240
|
+
return req[AUTHENTICATED_REQUEST] === true;
|
|
1241
|
+
}
|
|
1242
|
+
__name(requestWasAuthenticated, "requestWasAuthenticated");
|
|
1085
1243
|
function createMutationGate(deps) {
|
|
1086
1244
|
const passthrough = /* @__PURE__ */ __name((_req, _res, next) => next(), "passthrough");
|
|
1087
1245
|
if (deps.requireAuth || deps.tokenConfigured) {
|
|
1088
1246
|
return () => passthrough;
|
|
1089
1247
|
}
|
|
1090
|
-
const strictDenier = /* @__PURE__ */ __name((
|
|
1248
|
+
const strictDenier = /* @__PURE__ */ __name((req, res, next) => {
|
|
1249
|
+
if (requestWasAuthenticated(req)) {
|
|
1250
|
+
next();
|
|
1251
|
+
return;
|
|
1252
|
+
}
|
|
1091
1253
|
res.status(401).json({
|
|
1092
1254
|
error: "This route requires the daemon to be configured with a bearer token. Set QWEN_SERVER_TOKEN or pass --token to enable bearer auth.",
|
|
1093
1255
|
code: "token_required"
|
|
@@ -1270,6 +1432,10 @@ var SERVE_CAPABILITY_REGISTRY = {
|
|
|
1270
1432
|
session_source_metadata: { since: "v1" },
|
|
1271
1433
|
session_side_task: { since: "v1" },
|
|
1272
1434
|
session_prompt: { since: "v1" },
|
|
1435
|
+
session_turn_status: { since: "v1" },
|
|
1436
|
+
// Prompts and mid-turn messages reference session-scoped image and file
|
|
1437
|
+
// attachments by their stored filename.
|
|
1438
|
+
session_attachments: { since: "v1" },
|
|
1273
1439
|
session_mid_turn_message_mutation: { since: "v1" },
|
|
1274
1440
|
// Daemon-owned reconciliation surface for mid-turn messages:
|
|
1275
1441
|
// `GET /session/:id/mid-turn-messages` returns the messages still waiting
|
|
@@ -1403,6 +1569,7 @@ var SERVE_CAPABILITY_REGISTRY = {
|
|
|
1403
1569
|
workspace_tool_toggle: { since: "v1" },
|
|
1404
1570
|
workspace_skill_toggle: { since: "v1" },
|
|
1405
1571
|
workspace_skill_batch_toggle: { since: "v1" },
|
|
1572
|
+
extension_batch_activation_v2: { since: "v1" },
|
|
1406
1573
|
workspace_skill_manage: { since: "v1" },
|
|
1407
1574
|
workspace_settings: { since: "v1" },
|
|
1408
1575
|
// `GET /workspace/permissions` is always available when this tag is
|
|
@@ -1591,6 +1758,7 @@ var SERVE_CAPABILITY_REGISTRY = {
|
|
|
1591
1758
|
// projections. This is additive to the legacy primary-workspace
|
|
1592
1759
|
// `workspace_extensions` contract.
|
|
1593
1760
|
extension_management_v2: { since: "v1" },
|
|
1761
|
+
extension_git_credentials: { since: "v1" },
|
|
1594
1762
|
// Workspace-qualified, daemon-local persisted transcript paging. The tag is
|
|
1595
1763
|
// unconditional because the route also serves a trusted single-workspace
|
|
1596
1764
|
// primary; authorization is evaluated for the selected runtime per request.
|
|
@@ -1603,6 +1771,17 @@ var SERVE_CAPABILITY_REGISTRY = {
|
|
|
1603
1771
|
// This remains independent from active export so older daemons cannot ignore
|
|
1604
1772
|
// archive intent and return an active transcript with the same session id.
|
|
1605
1773
|
workspace_archived_session_export: { since: "v1" },
|
|
1774
|
+
// Workspace-qualified, memory-only session live-state snapshot plus the
|
|
1775
|
+
// in-memory catalog version token
|
|
1776
|
+
// (`GET /workspaces/:workspace/sessions/live-state`). Independent from
|
|
1777
|
+
// `workspace_qualified_rest_core`: released daemons can advertise that tag
|
|
1778
|
+
// without implementing this route, so clients must pre-flight it directly.
|
|
1779
|
+
// The route stays subject to the per-workspace trust check even when the
|
|
1780
|
+
// tag is advertised.
|
|
1781
|
+
workspace_session_live_state: { since: "v1" },
|
|
1782
|
+
// Workspace-qualified metadata updates for active, inactive, and archived
|
|
1783
|
+
// persisted sessions.
|
|
1784
|
+
workspace_session_metadata: { since: "v1" },
|
|
1606
1785
|
// Workspace-qualified ACP transport (issue #6378 Phase 4):
|
|
1607
1786
|
// `/workspaces/:workspace/acp` mounts a per-runtime ACP dispatcher (HTTP +
|
|
1608
1787
|
// WebSocket) for each registered workspace, with per-runtime device-flow and
|
|
@@ -2861,6 +3040,13 @@ async function buildDaemonStatusResponse(detail, input) {
|
|
|
2861
3040
|
let childRssBytesTotal = 0;
|
|
2862
3041
|
let childRssSampled = 0;
|
|
2863
3042
|
let oldestChildReadingAgeMs = null;
|
|
3043
|
+
let heapReported = 0;
|
|
3044
|
+
let peakOldGenerationBytes = 0;
|
|
3045
|
+
let peakLiveSetBytes = 0;
|
|
3046
|
+
let peakTotalHeapBytes = 0;
|
|
3047
|
+
let heapMajorGcCount = 0;
|
|
3048
|
+
let heapMajorGcMs = 0;
|
|
3049
|
+
const heapUnclassified = /* @__PURE__ */ new Set();
|
|
2864
3050
|
for (const runtime of managedRuntimes ?? []) {
|
|
2865
3051
|
if (!runtime.bridge.isChannelLive()) continue;
|
|
2866
3052
|
const snapshot = runtime.bridge.getChildResourceSnapshot?.();
|
|
@@ -2873,6 +3059,23 @@ async function buildDaemonStatusResponse(detail, input) {
|
|
|
2873
3059
|
snapshot.ageMs
|
|
2874
3060
|
);
|
|
2875
3061
|
}
|
|
3062
|
+
const heap = snapshot.heap;
|
|
3063
|
+
if (!heap) continue;
|
|
3064
|
+
heapReported += 1;
|
|
3065
|
+
peakOldGenerationBytes = Math.max(
|
|
3066
|
+
peakOldGenerationBytes,
|
|
3067
|
+
heap.peakOldGenerationBytes
|
|
3068
|
+
);
|
|
3069
|
+
peakLiveSetBytes = Math.max(peakLiveSetBytes, heap.peakLiveSetBytes);
|
|
3070
|
+
peakTotalHeapBytes = Math.max(
|
|
3071
|
+
peakTotalHeapBytes,
|
|
3072
|
+
heap.peakTotalHeapBytes
|
|
3073
|
+
);
|
|
3074
|
+
heapMajorGcCount = Math.max(heapMajorGcCount, heap.majorGcCount);
|
|
3075
|
+
heapMajorGcMs = Math.max(heapMajorGcMs, heap.majorGcMs);
|
|
3076
|
+
for (const name of heap.unclassifiedSpaceNames) {
|
|
3077
|
+
heapUnclassified.add(name);
|
|
3078
|
+
}
|
|
2876
3079
|
}
|
|
2877
3080
|
const pressureMode = input.opts.memoryPressureMode ?? "observe";
|
|
2878
3081
|
const pressureMemory = process.memoryUsage();
|
|
@@ -2883,7 +3086,18 @@ async function buildDaemonStatusResponse(detail, input) {
|
|
|
2883
3086
|
children: {
|
|
2884
3087
|
rssBytes: childRssBytesTotal,
|
|
2885
3088
|
sampled: childRssSampled,
|
|
2886
|
-
oldestReadingAgeMs: oldestChildReadingAgeMs
|
|
3089
|
+
oldestReadingAgeMs: oldestChildReadingAgeMs,
|
|
3090
|
+
// `null` on zero reporters, so an unmeasured daemon never publishes a
|
|
3091
|
+
// zeroed object that reads as "no child needs any heap".
|
|
3092
|
+
heap: heapReported > 0 ? {
|
|
3093
|
+
peakOldGenerationBytes,
|
|
3094
|
+
peakLiveSetBytes,
|
|
3095
|
+
peakTotalHeapBytes,
|
|
3096
|
+
majorGcCount: heapMajorGcCount,
|
|
3097
|
+
majorGcMs: heapMajorGcMs,
|
|
3098
|
+
unclassifiedSpaceNames: [...heapUnclassified],
|
|
3099
|
+
reported: heapReported
|
|
3100
|
+
} : null
|
|
2887
3101
|
},
|
|
2888
3102
|
modeled: {
|
|
2889
3103
|
recommendedShareAtRegisteredMb: registeredWorkspaceCount > 0 ? recommendedChildShareMb(memoryBudget, registeredWorkspaceCount) : null,
|
|
@@ -3738,6 +3952,25 @@ var WorkspaceVoiceCoordinator = class {
|
|
|
3738
3952
|
init_esbuild_shims();
|
|
3739
3953
|
init_esm();
|
|
3740
3954
|
import { performance } from "node:perf_hooks";
|
|
3955
|
+
|
|
3956
|
+
// packages/cli/src/serve/server/telemetry-context.ts
|
|
3957
|
+
init_esbuild_shims();
|
|
3958
|
+
var daemonTelemetryResponseContext = Symbol(
|
|
3959
|
+
"daemonTelemetryResponseContext"
|
|
3960
|
+
);
|
|
3961
|
+
var daemonInboundTraceIdContext = Symbol(
|
|
3962
|
+
"daemonInboundTraceIdContext"
|
|
3963
|
+
);
|
|
3964
|
+
function getDaemonTelemetryInboundTraceId(res) {
|
|
3965
|
+
try {
|
|
3966
|
+
return res[daemonInboundTraceIdContext];
|
|
3967
|
+
} catch {
|
|
3968
|
+
return void 0;
|
|
3969
|
+
}
|
|
3970
|
+
}
|
|
3971
|
+
__name(getDaemonTelemetryInboundTraceId, "getDaemonTelemetryInboundTraceId");
|
|
3972
|
+
|
|
3973
|
+
// packages/cli/src/serve/server/access-log.ts
|
|
3741
3974
|
var SESSION_ID_RE = /\/session\/([^/]+)/;
|
|
3742
3975
|
var ACCESS_LOG_BURST = 60;
|
|
3743
3976
|
var ACCESS_LOG_REFILL_PER_SECOND = 2;
|
|
@@ -3844,6 +4077,7 @@ function installAccessLogMiddleware(app, daemonLog, monotonicNow = () => perform
|
|
|
3844
4077
|
const sessionId = sessionMatch?.[1] ? truncateUtf8(sessionMatch[1], SESSION_ID_MAX_BYTES) : void 0;
|
|
3845
4078
|
const rawClientId = firstRawHeader(req.rawHeaders, "x-qwen-client-id");
|
|
3846
4079
|
const clientId = rawClientId ? truncateUtf8(rawClientId, CLIENT_ID_MAX_BYTES) : void 0;
|
|
4080
|
+
const inboundTraceId = getDaemonTelemetryInboundTraceId(res);
|
|
3847
4081
|
const ctx = {
|
|
3848
4082
|
route: route.value,
|
|
3849
4083
|
...route.originalBytes ? { routeOriginalBytes: route.originalBytes } : {},
|
|
@@ -3855,6 +4089,7 @@ function installAccessLogMiddleware(app, daemonLog, monotonicNow = () => perform
|
|
|
3855
4089
|
clientId: clientId.value,
|
|
3856
4090
|
...clientId.originalBytes ? { clientIdOriginalBytes: clientId.originalBytes } : {}
|
|
3857
4091
|
} : {},
|
|
4092
|
+
...inboundTraceId ? { traceId: inboundTraceId } : {},
|
|
3858
4093
|
status,
|
|
3859
4094
|
durationMs: Math.max(0, Math.round(monotonicNow() - startMs))
|
|
3860
4095
|
};
|
|
@@ -3882,11 +4117,18 @@ export {
|
|
|
3882
4117
|
createBridgeFileSystemAdapter,
|
|
3883
4118
|
PathMutexRegistry,
|
|
3884
4119
|
isDeepHealthQuery,
|
|
4120
|
+
CredentialStore,
|
|
4121
|
+
singleTokenCredentials,
|
|
4122
|
+
tagListener,
|
|
4123
|
+
listenerIdentityOf,
|
|
4124
|
+
listenerIdentityOfSocket,
|
|
3885
4125
|
denyBrowserOriginCors,
|
|
3886
4126
|
parseAllowOriginPatterns,
|
|
4127
|
+
MutableOriginAllowlist,
|
|
3887
4128
|
allowOriginCors,
|
|
3888
4129
|
hostAllowlist,
|
|
3889
4130
|
bearerAuth,
|
|
4131
|
+
requestWasAuthenticated,
|
|
3890
4132
|
createMutationGate,
|
|
3891
4133
|
ClientMcpSenderRegistry,
|
|
3892
4134
|
createClientMcpServerProvider,
|
|
@@ -3947,6 +4189,8 @@ export {
|
|
|
3947
4189
|
MAX_CONCURRENT_VOICE_SESSIONS,
|
|
3948
4190
|
VoiceLeaseAbortError,
|
|
3949
4191
|
WorkspaceVoiceCoordinator,
|
|
4192
|
+
daemonTelemetryResponseContext,
|
|
4193
|
+
daemonInboundTraceIdContext,
|
|
3950
4194
|
ACCESS_LOG_CONTROLLER_LOCAL,
|
|
3951
4195
|
installAccessLogMiddleware
|
|
3952
4196
|
};
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
t
|
|
5
|
+
} from "./chunk-45UD2TU4.js";
|
|
3
6
|
import {
|
|
4
7
|
require_semver
|
|
5
8
|
} from "./chunk-2AUM35J5.js";
|
|
6
9
|
import {
|
|
7
10
|
getNpmCliPath
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import {
|
|
10
|
-
t
|
|
11
|
-
} from "./chunk-HUTNYWBG.js";
|
|
11
|
+
} from "./chunk-M2IL2RTA.js";
|
|
12
12
|
import {
|
|
13
13
|
getPackageJson
|
|
14
14
|
} from "./chunk-WZMH7II3.js";
|
|
15
15
|
import {
|
|
16
16
|
createDebugLogger
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-A5F2YNO6.js";
|
|
18
18
|
import {
|
|
19
19
|
init_esbuild_shims
|
|
20
20
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
getRateLimitErrorDetails
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-LI4YHTQK.js";
|
|
6
6
|
import {
|
|
7
7
|
isInternalPromptId
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-RPJOOK6N.js";
|
|
9
9
|
import {
|
|
10
10
|
createDebugLogger
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-A5F2YNO6.js";
|
|
12
12
|
import {
|
|
13
13
|
init_esbuild_shims
|
|
14
14
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -26,6 +26,16 @@ var getAsciiArtWidth = /* @__PURE__ */ __name((asciiArt) => {
|
|
|
26
26
|
}, "getAsciiArtWidth");
|
|
27
27
|
var codePointsCache = /* @__PURE__ */ new Map();
|
|
28
28
|
var MAX_STRING_LENGTH_TO_CACHE = 1e3;
|
|
29
|
+
var TEXT_CACHE_MAX_ENTRIES = 500;
|
|
30
|
+
function evictOldestTextCacheEntry(cache) {
|
|
31
|
+
if (cache.size >= TEXT_CACHE_MAX_ENTRIES) {
|
|
32
|
+
const firstKey = cache.keys().next().value;
|
|
33
|
+
if (firstKey !== void 0) {
|
|
34
|
+
cache.delete(firstKey);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
__name(evictOldestTextCacheEntry, "evictOldestTextCacheEntry");
|
|
29
39
|
function toCodePoints(str) {
|
|
30
40
|
let isAscii = true;
|
|
31
41
|
for (let i = 0; i < str.length; i++) {
|
|
@@ -45,6 +55,7 @@ function toCodePoints(str) {
|
|
|
45
55
|
}
|
|
46
56
|
const result = Array.from(str);
|
|
47
57
|
if (str.length <= MAX_STRING_LENGTH_TO_CACHE) {
|
|
58
|
+
evictOldestTextCacheEntry(codePointsCache);
|
|
48
59
|
codePointsCache.set(str, result);
|
|
49
60
|
}
|
|
50
61
|
return result;
|
|
@@ -77,10 +88,14 @@ var getCachedStringWidth = /* @__PURE__ */ __name((str) => {
|
|
|
77
88
|
if (/^[\x20-\x7E]*$/.test(str)) {
|
|
78
89
|
return str.length;
|
|
79
90
|
}
|
|
91
|
+
if (str.length > MAX_STRING_LENGTH_TO_CACHE) {
|
|
92
|
+
return stringWidth(str);
|
|
93
|
+
}
|
|
80
94
|
if (stringWidthCache.has(str)) {
|
|
81
95
|
return stringWidthCache.get(str);
|
|
82
96
|
}
|
|
83
97
|
const width = stringWidth(str);
|
|
98
|
+
evictOldestTextCacheEntry(stringWidthCache);
|
|
84
99
|
stringWidthCache.set(str, width);
|
|
85
100
|
return width;
|
|
86
101
|
}, "getCachedStringWidth");
|
|
@@ -5,14 +5,14 @@ import {
|
|
|
5
5
|
isTranscribableVoiceModel,
|
|
6
6
|
readVoiceLanguage,
|
|
7
7
|
resolveVoiceTransport
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-GXG4PYQB.js";
|
|
9
9
|
import {
|
|
10
10
|
resolvePath
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-Z3JMO2CH.js";
|
|
12
12
|
import {
|
|
13
13
|
createDebugLogger,
|
|
14
14
|
isSubpath
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-A5F2YNO6.js";
|
|
16
16
|
import {
|
|
17
17
|
init_esbuild_shims
|
|
18
18
|
} from "./chunk-5O2XNYP6.js";
|