@qwen-code/qwen-code 0.21.0-nightly.20260727.c003e1718 → 0.21.0-preview.0
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 +4 -0
- package/bundled/qc-helper/docs/features/channels/github.md +14 -14
- package/bundled/qc-helper/docs/features/hooks.md +50 -13
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +2 -2
- package/bundled/qc-helper/docs/support/troubleshooting.md +2 -1
- package/bundled/review/SKILL.md +15 -0
- package/chunks/{MaxSizedBox-2N5IOLMA.js → MaxSizedBox-UQGQ6O3I.js} +36 -36
- package/chunks/{StandaloneSessionPicker-6SNFY63D.js → StandaloneSessionPicker-QLO5COVM.js} +51 -51
- package/chunks/{acp-startup-profiler-RV3IV562.js → acp-startup-profiler-DFVPFQ6C.js} +2 -2
- package/chunks/{acpAgent-6BDY452E.js → acpAgent-ECMKCJPZ.js} +1265 -505
- package/chunks/{agent-WPMRCC7E.js → agent-NJ4VPY5B.js} +31 -31
- package/chunks/{agent-headless-OSOKZOZK.js → agent-headless-JB6RF5HT.js} +31 -31
- package/chunks/{anthropicContentGenerator-EJEHPX2W.js → anthropicContentGenerator-V2QOGVYD.js} +54 -13
- package/chunks/{artifact-tool-FQYTXKFY.js → artifact-tool-6K6U7XYJ.js} +2 -2
- package/chunks/{askUserQuestion-DJQIJ5T4.js → askUserQuestion-GD2IJJ7I.js} +2 -2
- package/chunks/{bridge-VR3WL36L.js → bridge-EXKCQ7MD.js} +38 -37
- package/chunks/{build-47LY6L7H.js → build-S6DO7LMM.js} +1 -1
- package/chunks/{ca-UBSN3YSM.js → ca-6W3SK7OQ.js} +1 -1
- package/chunks/{channel-management-service-2WRAWZQU.js → channel-management-service-XR7GZSWF.js} +7 -7
- package/chunks/{channel-settings-store-3FOVM5TF.js → channel-settings-store-VA4J7HPF.js} +38 -38
- package/chunks/{channel-worker-group-VMGKUBUY.js → channel-worker-group-XDPTDWTX.js} +9 -5
- package/chunks/{channel-worker-manager-2SCF42S2.js → channel-worker-manager-YYEHVRRE.js} +9 -5
- package/chunks/{channel-worker-supervisor-F3HADSDC.js → channel-worker-supervisor-74HTWA2G.js} +5 -4
- package/chunks/{chunk-2PHWA4IO.js → chunk-2DN4J57Y.js} +2 -2
- package/chunks/{chunk-HHYPUCUF.js → chunk-2LKVPASC.js} +3 -3
- package/chunks/{chunk-ECBKZ7SV.js → chunk-2LQTH543.js} +2 -2
- package/chunks/{chunk-EDEO3ZXU.js → chunk-2XSLTRFZ.js} +2 -2
- package/chunks/{chunk-HIJQF5B5.js → chunk-3L2SPEBH.js} +1 -1
- package/chunks/{chunk-2KHUM3TN.js → chunk-3MGBLIXX.js} +167 -81
- package/chunks/{chunk-CWFC2GZB.js → chunk-3Q4TGVUX.js} +1385 -785
- package/chunks/{chunk-KR2UZ6QL.js → chunk-4G2BISNC.js} +1 -1
- package/chunks/{chunk-IUYFCE34.js → chunk-4WSL256B.js} +3 -3
- package/chunks/{chunk-LI4HGDLZ.js → chunk-5FNROPXI.js} +4 -4
- package/chunks/{chunk-ECEJ6T4L.js → chunk-5TBMQLGG.js} +2 -2
- package/chunks/{chunk-KW3H2FM4.js → chunk-5YKDXHUY.js} +2 -2
- package/chunks/{chunk-PIVH7FAY.js → chunk-5YVWMI26.js} +5 -5
- package/chunks/{chunk-IUNB6SUW.js → chunk-64LQLPL7.js} +3 -3
- package/chunks/{chunk-7R4YENCL.js → chunk-6QIGFD5W.js} +1 -1
- package/chunks/{chunk-SHJ4R6JF.js → chunk-727I7LJ2.js} +5 -5
- package/chunks/{chunk-BRKWIX5C.js → chunk-74YNMTJP.js} +30 -19
- package/chunks/{chunk-IM6PC55H.js → chunk-75GFAX4R.js} +1 -1
- package/chunks/{chunk-IXNNGTUI.js → chunk-75MIQ3LV.js} +18 -3
- package/chunks/{chunk-VCBKBEU7.js → chunk-7A4ZDITM.js} +27 -14
- package/chunks/{chunk-FZZTCEXC.js → chunk-7HRXAFCW.js} +10 -10
- package/chunks/{chunk-BJHP755Z.js → chunk-7I5GTCT4.js} +271 -164
- package/chunks/{chunk-BOWYL27T.js → chunk-7XATOOE7.js} +1 -1
- package/chunks/{chunk-HAZMIZP7.js → chunk-A2APC6HM.js} +2 -2
- package/chunks/{chunk-ZYD3KZPB.js → chunk-A3NDJ5SB.js} +2 -2
- package/chunks/{chunk-IIJCNWAY.js → chunk-AL62VKMS.js} +4 -4
- package/chunks/{chunk-NZYXKNSZ.js → chunk-AOAYOH3R.js} +1 -1
- package/chunks/{chunk-C6U6ZR65.js → chunk-ATZOB5Y2.js} +11 -11
- package/chunks/{chunk-UH3WSE5L.js → chunk-B4AJNNOL.js} +1 -6
- package/chunks/{chunk-JJY7H2ZU.js → chunk-BCZFQXWK.js} +2 -2
- package/chunks/{chunk-FUFNINKB.js → chunk-BGTQCTQW.js} +42 -3
- package/chunks/{chunk-6PQHZ4YW.js → chunk-BWKCTLEJ.js} +193 -149
- package/chunks/{chunk-3FNJBOF7.js → chunk-CVHIL5IG.js} +3 -3
- package/chunks/{chunk-55PWRVIR.js → chunk-DABQX74H.js} +8 -8
- package/chunks/{chunk-N7U3LRNS.js → chunk-DDKAZLZ7.js} +17 -6
- package/chunks/{chunk-CPF4NIKT.js → chunk-DIQGH5CN.js} +1 -1
- package/chunks/{chunk-3YAW4B2W.js → chunk-DJGYJDYR.js} +1 -1
- package/chunks/{chunk-4IQSPE3A.js → chunk-DNDETPES.js} +3 -3
- package/chunks/{chunk-4CCAX23S.js → chunk-DZLYR4U3.js} +1 -1
- package/chunks/{chunk-7XSFZ3FM.js → chunk-EABYVKAK.js} +2 -2
- package/chunks/{chunk-SJXVC6ZO.js → chunk-F3EYHTOC.js} +4 -4
- package/chunks/{chunk-RKMMVQDZ.js → chunk-FNMZK765.js} +1 -1
- package/chunks/{chunk-2KLJYA37.js → chunk-FW4M4GA7.js} +1 -1
- package/chunks/chunk-FYJ7W2PI.js +194 -0
- package/chunks/{chunk-7GC5YKSS.js → chunk-GATT5TKW.js} +1 -1
- package/chunks/{chunk-4CSVLZXK.js → chunk-GBAZKAZW.js} +3 -3
- package/chunks/{chunk-5ADNRHTY.js → chunk-GEBV2JGB.js} +28 -5
- package/chunks/{chunk-VV6QF662.js → chunk-GKX7E4CO.js} +1 -1
- package/chunks/{chunk-ELHHYF7E.js → chunk-GNR2RNMP.js} +157 -4
- package/chunks/{chunk-PLMOXLFY.js → chunk-GW3XHA6P.js} +2 -2
- package/chunks/{chunk-SAXBG6AR.js → chunk-GXIJHV66.js} +3 -3
- package/chunks/{chunk-4AVIERNE.js → chunk-GZ3RCT54.js} +1 -1
- package/chunks/{chunk-6K2CPEAB.js → chunk-HKFEPLKW.js} +1 -1
- package/chunks/{chunk-QVKDVURA.js → chunk-HRD7NI6D.js} +11 -3
- package/chunks/{chunk-G3RJEBAA.js → chunk-HUK2P4RS.js} +2510 -1273
- package/chunks/{chunk-RRNQGWR4.js → chunk-HWNLU2HC.js} +7 -7
- package/chunks/{chunk-TH6TQR5Y.js → chunk-IZO36O6O.js} +252 -15
- package/chunks/{chunk-67IE7N5D.js → chunk-JMONIXMJ.js} +1 -1
- package/chunks/{chunk-DMEKUQ5Z.js → chunk-JSD33JG6.js} +3 -3
- package/chunks/{chunk-CX2KLDRX.js → chunk-JYBU6YUE.js} +1 -1
- package/chunks/{chunk-SJOQ5GW7.js → chunk-KADQPLPX.js} +1 -1
- package/chunks/{chunk-PAJNXBXO.js → chunk-KBNDRM4U.js} +3 -3
- package/chunks/{chunk-TD665TIY.js → chunk-KFPFJAR3.js} +24 -22
- package/chunks/{chunk-ZGVQLKMP.js → chunk-KY3NRFJ5.js} +9 -6
- package/chunks/{chunk-DEKCAHRS.js → chunk-LGAOC3ZS.js} +1 -1
- package/chunks/{chunk-GVHHFBJ2.js → chunk-LHZRAR2Q.js} +37 -40
- package/chunks/{chunk-2WUAKFCQ.js → chunk-LNHZ3A4I.js} +44 -11
- package/chunks/{chunk-2LFSPVBC.js → chunk-LW3RFMG7.js} +3 -3
- package/chunks/{chunk-SEWRIH7H.js → chunk-M7OONWYU.js} +2 -2
- package/chunks/{chunk-CO3BKKFP.js → chunk-ML5M5XOY.js} +269 -248
- package/chunks/{chunk-YF6D7CRB.js → chunk-NG3V2LPY.js} +8 -13
- package/chunks/{chunk-ZAJIOSFI.js → chunk-NNERMV7T.js} +2 -2
- package/chunks/{chunk-N5JEINK3.js → chunk-NOKIVHOL.js} +15 -2
- package/chunks/chunk-OCPBI7J5.js +18 -0
- package/chunks/{chunk-YF7TVSQK.js → chunk-OKF7JF3R.js} +3 -3
- package/chunks/{chunk-5FQ3CINJ.js → chunk-OXWFQXKX.js} +6 -6
- package/chunks/{chunk-EWYICJNY.js → chunk-P2YNZWXZ.js} +3 -3
- package/chunks/{chunk-6LOSXNKO.js → chunk-PONHVBRT.js} +2 -2
- package/chunks/{chunk-FZP2GLM4.js → chunk-QQLCYEN2.js} +1 -1
- package/chunks/{chunk-HEVX5YOM.js → chunk-R3NOCPFB.js} +4 -4
- package/chunks/{chunk-WZOPR2ZP.js → chunk-R7ZITH3J.js} +3 -1
- package/chunks/{chunk-ACPMPDKQ.js → chunk-RPLGZJV2.js} +38 -1
- package/chunks/{chunk-MFBM3CQZ.js → chunk-SGFT55XI.js} +1 -1
- package/chunks/{chunk-QSDUHJAR.js → chunk-SGM6M3XG.js} +1 -1
- package/chunks/{chunk-II55VZQA.js → chunk-SUWVXF2E.js} +3 -3
- package/chunks/{chunk-VYPFXUCB.js → chunk-SZ3KHTDR.js} +1 -1
- package/chunks/{chunk-UWSREISS.js → chunk-T2QMKU3R.js} +79 -1
- package/chunks/{chunk-7VOUXBKJ.js → chunk-TFRMVU6R.js} +1 -1
- package/chunks/{chunk-RGZ34F4F.js → chunk-TUQ36KWK.js} +10 -5
- package/chunks/{chunk-R2F2DRBY.js → chunk-U3E3UQAA.js} +4 -4
- package/chunks/{chunk-2XORP6RV.js → chunk-UEDIRTKG.js} +1 -1
- package/chunks/{chunk-VOTXHGKJ.js → chunk-UFI5GRDS.js} +3 -3
- package/chunks/{chunk-ATIV6G7N.js → chunk-UHUSJ6X7.js} +1 -1
- package/chunks/{chunk-2WVVMSPB.js → chunk-UPUG4GXM.js} +3 -3
- package/chunks/{chunk-TXI4LPWT.js → chunk-UWMLWVCA.js} +18 -6
- package/chunks/{chunk-G2W6OP2O.js → chunk-V5AWXXVA.js} +3 -3
- package/chunks/{chunk-5CGAUBFZ.js → chunk-VYO6YPYG.js} +3 -3
- package/chunks/{chunk-67ZRSECV.js → chunk-W4MIWP6M.js} +26 -15
- package/chunks/{chunk-OJJVALKY.js → chunk-WBSMNTSV.js} +3 -3
- package/chunks/{chunk-BZU6TRNQ.js → chunk-WUKGHS32.js} +5 -5
- package/chunks/{chunk-WTCKVXNT.js → chunk-WUNZAP5I.js} +4 -4
- package/chunks/{chunk-XM5V2A2E.js → chunk-WZRWHXFE.js} +1 -1
- package/chunks/{chunk-K2P7QBXF.js → chunk-X6XZITHR.js} +3 -3
- package/chunks/{chunk-ZEVUICUF.js → chunk-XBYYDKAZ.js} +7 -7
- package/chunks/{chunk-XL7TLW5I.js → chunk-XBZQT63P.js} +1 -1
- package/chunks/{chunk-DC2Y3JSV.js → chunk-XH7E5IGP.js} +1 -1
- package/chunks/{chunk-B5DJFAHN.js → chunk-XR2NFLNQ.js} +4 -4
- package/chunks/{chunk-FOT6JBY5.js → chunk-XRYM3MCI.js} +348 -126
- package/chunks/{chunk-IJDXG4RL.js → chunk-XWWKIXVD.js} +1 -1
- package/chunks/{chunk-3SJ43L4W.js → chunk-XZC5VLBZ.js} +2 -0
- package/chunks/{chunk-ZWL7SSVL.js → chunk-Y4IHBGBP.js} +1 -1
- package/chunks/{chunk-MB3M2BFP.js → chunk-Y6AXW2OG.js} +9 -3
- package/chunks/{chunk-6ENJ2DGB.js → chunk-Y6RATHM5.js} +2 -2
- package/chunks/{chunk-D33ZN3GK.js → chunk-YAKKV4WO.js} +12 -12
- package/chunks/{chunk-IPUUTYMV.js → chunk-YDLJGZHL.js} +1 -1
- package/chunks/{chunk-H6YTFKW7.js → chunk-YGF33UXG.js} +60 -7
- package/chunks/{chunk-BV6LBI45.js → chunk-YPCRRO7K.js} +3 -3
- package/chunks/{chunk-WDMODYUC.js → chunk-ZBVS26BY.js} +4 -0
- package/chunks/{chunk-GBJUC5ZL.js → chunk-ZHBO7WVX.js} +1 -1
- package/chunks/{chunk-4CKLWQQR.js → chunk-ZSQ5LDBH.js} +1 -1
- package/chunks/{computer-use-42W2GDED.js → computer-use-TGJRGZWO.js} +31 -31
- package/chunks/{config-utils-OTUC46XY.js → config-utils-NYSXDMEQ.js} +4 -4
- package/chunks/{contextCommand-2WIK6DG3.js → contextCommand-HGWDMG36.js} +33 -33
- package/chunks/{core-runtime-YFT4JKHA.js → core-runtime-WHE3LSHF.js} +31 -31
- package/chunks/{create-sub-session-HQMFFLL5.js → create-sub-session-OWI4RC7D.js} +31 -31
- package/chunks/{create-sub-session-Q4BUPKIO.js → create-sub-session-SBYUMSSS.js} +2 -2
- package/chunks/{cron-create-NI2G2ACR.js → cron-create-2QK6TCEC.js} +4 -4
- package/chunks/{cron-delete-KHD2WOMV.js → cron-delete-FDCDFYMG.js} +4 -4
- package/chunks/{cron-list-LZMV5V7N.js → cron-list-XN3WVBTP.js} +4 -4
- package/chunks/{daemon-KN3FWTYU.js → daemon-Q2AB5Z23.js} +139 -2
- package/chunks/{daemon-status-provider-DYVQTAZX.js → daemon-status-provider-KY35PVUR.js} +43 -42
- package/chunks/{daemon-trust-policy-QUHMUDOQ.js → daemon-trust-policy-QSQRPXHD.js} +37 -37
- package/chunks/{daemon-trust-policy-monitor-AHIPWCQD.js → daemon-trust-policy-monitor-VJQ54EM3.js} +37 -37
- package/chunks/{de-LVJPZWUT.js → de-SY6O76BF.js} +1 -1
- package/chunks/{deferred-core-runtime-VWKP5HVD.js → deferred-core-runtime-U3DDMMV2.js} +31 -31
- package/chunks/{dist-CWCPAMA2.js → dist-BSTVRPMT.js} +234 -78
- package/chunks/{dist-GWORRKWL.js → dist-DOLYHMXE.js} +2 -2
- package/chunks/{dist-CRNO2KXU.js → dist-HVRQ2CFL.js} +271 -11
- package/chunks/{dist-TPJRJ237.js → dist-IXQEQWRG.js} +1 -1
- package/chunks/{dist-ONF2ZUUX.js → dist-SSU66DM4.js} +1 -1
- package/chunks/{dist-BRVIXBFA.js → dist-SV7Q3AWJ.js} +1 -1
- package/chunks/{dist-2HFXMUT6.js → dist-YGBBMK3Z.js} +1 -1
- package/chunks/{earlyInputCapture-AZAUUSDE.js → earlyInputCapture-H4YOY6R7.js} +32 -32
- package/chunks/{edit-2GM73YUN.js → edit-NZWMOOX6.js} +31 -31
- package/chunks/{en-7JEDYSBE.js → en-NBK3JKCE.js} +4 -1
- package/chunks/{enter-worktree-O6MC2FZM.js → enter-worktree-6FMYNZ4S.js} +31 -31
- package/chunks/{enterPlanMode-NJNHHLAJ.js → enterPlanMode-RYK5P7WC.js} +31 -31
- package/chunks/{environment-L5QWIYKQ.js → environment-RBLY3QVX.js} +33 -33
- package/chunks/{errors-GO7MH572.js → errors-WVUI42QV.js} +33 -33
- package/chunks/{exit-worktree-FR7KKQSW.js → exit-worktree-FRFYEX6R.js} +31 -31
- package/chunks/{exitPlanMode-QKNK5MBZ.js → exitPlanMode-STTGKHP2.js} +31 -31
- package/chunks/{fast-path-7SP4KXIF.js → fast-path-OZD2JFDY.js} +3 -3
- package/chunks/{fast-path-settings-GTWXZLJZ.js → fast-path-settings-WQJU2LAT.js} +2 -2
- package/chunks/{fr-JXF5ONTD.js → fr-4KG5V7UT.js} +1 -1
- package/chunks/{gemini-J5WX6DS3.js → gemini-PUKYW6OF.js} +83 -82
- package/chunks/{geminiContentGenerator-X4FCO2IH.js → geminiContentGenerator-HYMWIERE.js} +6 -6
- package/chunks/{glob-UYGYQ73X.js → glob-IZATNUPS.js} +31 -31
- package/chunks/{grep-HWLK333D.js → grep-DWHBLRXJ.js} +33 -32
- package/chunks/{handleAutoUpdate-H55RTXMU.js → handleAutoUpdate-3VHGEOAV.js} +35 -35
- package/chunks/{i18n-6YL3VGHQ.js → i18n-A56PNKBP.js} +32 -32
- package/chunks/{image-gen-ZN43Y352.js → image-gen-RBLQKXQJ.js} +9 -9
- package/chunks/{initializer-ATU3WGM5.js → initializer-TCD6H7VY.js} +38 -38
- package/chunks/{installationInfo-3D4M363G.js → installationInfo-276EXQW2.js} +32 -32
- package/chunks/{ja-72VBFAM5.js → ja-F3GSQXMF.js} +1 -1
- package/chunks/{keychain-token-storage-U6BBK3IE.js → keychain-token-storage-72IYCAZV.js} +2 -2
- package/chunks/{list-K7TOZQ5T.js → list-NWDHWJ4D.js} +40 -40
- package/chunks/{list-agents-FHIQAX2Y.js → list-agents-R6KDXQR3.js} +2 -2
- package/chunks/{loadedSettingsAdapter-IDASCO2P.js → loadedSettingsAdapter-YXJKWUYF.js} +37 -37
- package/chunks/{loggingContentGenerator-C7ECOBP5.js → loggingContentGenerator-LU6TII3U.js} +18 -18
- package/chunks/{loop-wakeup-PSF72P7O.js → loop-wakeup-3IQKCYAH.js} +5 -5
- package/chunks/{ls-RVQ2JC4C.js → ls-DKZ37A7N.js} +4 -4
- package/chunks/{lsp-UFP2H2RG.js → lsp-QNWN7KN3.js} +2 -2
- package/chunks/{managed-npm-update-MWQIFEJC.js → managed-npm-update-AO3CL6VU.js} +32 -32
- package/chunks/{mcp-YJ4SZXFF.js → mcp-5PMHEFAR.js} +37 -37
- package/chunks/{monitor-MWKW6W4Q.js → monitor-2YELRQ6S.js} +31 -31
- package/chunks/nonInteractiveCli-74R5S76M.js +144 -0
- package/chunks/{notebook-edit-ALAKK5DZ.js → notebook-edit-SV6GDWUG.js} +31 -31
- package/chunks/{openaiContentGenerator-V5GYCLVN.js → openaiContentGenerator-FMBXX26Z.js} +19 -19
- package/chunks/{pidfile-I7IOGSVT.js → pidfile-HZA26WFC.js} +32 -32
- package/chunks/process-registry-2CHQBXH5.js +157 -0
- package/chunks/{processUtils-SRGJPX5P.js → processUtils-4F7EMUKQ.js} +2 -2
- package/chunks/{pt-E4AMXNUG.js → pt-EQ33KWEN.js} +1 -1
- package/chunks/{qwenContentGenerator-INCMQJG3.js → qwenContentGenerator-CXAD5IOE.js} +37 -37
- package/chunks/{qwenOAuth2-MIL7MEKO.js → qwenOAuth2-7V2RGLUU.js} +8 -8
- package/chunks/{read-file-BBQ6BN7G.js → read-file-AQKNOXOV.js} +11 -11
- package/chunks/{read-mcp-resource-M4IJUOXP.js → read-mcp-resource-GFTWYXMK.js} +2 -2
- package/chunks/{record-artifact-4NWBVHNM.js → record-artifact-XAMSFSW4.js} +2 -2
- package/chunks/{resumeHistoryUtils-X74IGERO.js → resumeHistoryUtils-NSHGEJZY.js} +37 -37
- package/chunks/{ripGrep-GCSZGI22.js → ripGrep-KVWIREMR.js} +31 -31
- package/chunks/{ru-OJOR34RM.js → ru-7OZAUKGG.js} +1 -1
- package/chunks/{run-qwen-serve-RAPQ4UBN.js → run-qwen-serve-LBBMQRWJ.js} +94 -58
- package/chunks/{runtime-F4YK7A5M.js → runtime-XR3VFARS.js} +42 -42
- package/chunks/{scheduler-JFOAST7W.js → scheduler-OLI5YERT.js} +31 -31
- package/chunks/{sdk-exporters-http-H6MWAYGV.js → sdk-exporters-http-WO556XNU.js} +2 -2
- package/chunks/{sdk-impl-U4BU6LE5.js → sdk-impl-LPAVACSF.js} +2 -2
- package/chunks/{send-message-GAB3K4KN.js → send-message-SAWK4DZX.js} +4 -4
- package/chunks/{serve-WAK4FQIT.js → serve-2WM3HPSN.js} +37 -37
- package/chunks/{server-GJFU7OZ6.js → server-T4C6UGPM.js} +895 -127
- package/chunks/{session-WFWS7D6U.js → session-IAPGXMG3.js} +78 -77
- package/chunks/{settings-NI7K6BOS.js → settings-LIYC7NVY.js} +39 -39
- package/chunks/{shell-PI52ZRBM.js → shell-M455ZXG6.js} +31 -31
- package/chunks/{skill-EGJY4VDT.js → skill-ZHDF6IVV.js} +15 -15
- package/chunks/{skill-settings-27BQIOWC.js → skill-settings-MEFO33AC.js} +36 -36
- package/chunks/{spawnChannel-LU6YO2IZ.js → spawnChannel-NAISQSBK.js} +33 -33
- package/chunks/{standalone-update-TG2BLT73.js → standalone-update-K4RNR537.js} +33 -33
- package/chunks/{startInteractiveUI-4NTL2RZ6.js → startInteractiveUI-HJUQMCBD.js} +426 -216
- package/chunks/{syntheticOutput-YCOHYBPM.js → syntheticOutput-355CB6CJ.js} +3 -3
- package/chunks/{task-create-YRN3PDAT.js → task-create-INGWNUG4.js} +8 -8
- package/chunks/{task-list-FYGHXFOT.js → task-list-5XNNGTF4.js} +5 -5
- package/chunks/{task-stop-I7CNWL7J.js → task-stop-4ROAOBXH.js} +2 -2
- package/chunks/{task-update-5QOY2AIK.js → task-update-CRK5VWWZ.js} +8 -8
- package/chunks/{team-create-5H4T3ENJ.js → team-create-YWCUC55A.js} +31 -31
- package/chunks/{team-delete-OAA4YOAC.js → team-delete-S2RCXA4P.js} +5 -5
- package/chunks/{team-plan-approval-44SCBFBB.js → team-plan-approval-ZJGZRKV5.js} +31 -31
- package/chunks/{theme-manager-HYFW3GL7.js → theme-manager-5LUFI5NY.js} +32 -32
- package/chunks/{todoWrite-YFIBFZO3.js → todoWrite-7WM3VDMY.js} +4 -4
- package/chunks/{tool-search-YAIIWTSJ.js → tool-search-LZMDLBAK.js} +13 -13
- package/chunks/{total-session-admission-FPF66OF6.js → total-session-admission-MDA3ANYQ.js} +39 -38
- package/chunks/{trustedFolders-4RSRSIO3.js → trustedFolders-NZEZRJPU.js} +32 -32
- package/chunks/{update-relaunch-4NKVI2H5.js → update-relaunch-D7EKBO4E.js} +5 -5
- package/chunks/{updateCheck-E2336RGI.js → updateCheck-AKFMZZCG.js} +34 -34
- package/chunks/{useAutoAcceptIndicator-YXC4OJ2B.js → useAutoAcceptIndicator-55OEL7UZ.js} +40 -40
- package/chunks/{validateNonInterActiveAuth-G5PREALO.js → validateNonInterActiveAuth-K5WQOFUQ.js} +72 -71
- package/chunks/{version-IBROP4MJ.js → version-ANSPR52A.js} +1 -1
- package/chunks/{web-fetch-G2GFNE3L.js → web-fetch-WFKX5SJM.js} +14 -14
- package/chunks/{web-search-4ISTNKIX.js → web-search-XDPHXEUC.js} +9 -9
- package/chunks/{workflow-OQY4Y74P.js → workflow-6YYVMHCS.js} +32 -32
- package/chunks/{workspace-providers-status-SRB65GMC.js → workspace-providers-status-5L4FEPYR.js} +40 -40
- package/chunks/{workspace-registration-store-XOUNCX5G.js → workspace-registration-store-C2HIDNXV.js} +1 -1
- package/chunks/{workspace-registry-XMDDRCP3.js → workspace-registry-7B7T5SC3.js} +39 -38
- package/chunks/{workspace-service-XUAHBWUX.js → workspace-service-VGGIWADS.js} +46 -45
- package/chunks/{workspace-skills-status-GGH6TYSU.js → workspace-skills-status-MZZLEGL5.js} +38 -38
- package/chunks/{workspace-trust-reconciler-AKKLKLJQ.js → workspace-trust-reconciler-3PA5PLHX.js} +45 -44
- package/chunks/{write-file-7MSTD3VC.js → write-file-5GNKRL2B.js} +31 -31
- package/chunks/{zh-2MA5UKNJ.js → zh-H3YDK5QW.js} +4 -1
- package/chunks/{zh-TW-JO4Z7CVC.js → zh-TW-JYCP7XUA.js} +4 -1
- package/chunks/zoom-image-JIRPKLNA.js +351 -0
- package/cli.js +13 -13
- package/locales/ca.js +2 -2
- package/locales/de.js +2 -2
- package/locales/en.js +5 -2
- package/locales/fr.js +2 -2
- package/locales/ja.js +2 -2
- package/locales/pt.js +2 -2
- package/locales/ru.js +2 -2
- package/locales/zh-TW.js +5 -2
- package/locales/zh.js +5 -2
- package/package.json +5 -4
- package/web-shell/assets/{arc-DYNfZ967.js → arc-75-Wdeo3.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-CkKsIF39.js → architectureDiagram-3BPJPVTR-FKeXQbyP.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-FfDv_qOy.js → blockDiagram-GPEHLZMM-CY0vc-A3.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-pA5r7guO.js → c4Diagram-AAUBKEIU-CNP-A-8u.js} +1 -1
- package/web-shell/assets/channel-DPYMT76A.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-Bfnf2k-q.js → chunk-2J33WTMH-GybS4Gii.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-BCpgiyb4.js → chunk-4BX2VUAB-02H91V8v.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-BrwrazA2.js → chunk-55IACEB6-D3M-2VT6.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-DDCxd_BK.js → chunk-727SXJPM-CCu29u4H.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-Ce-B1Qi5.js → chunk-AQP2D5EJ-CaFKWgrn.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-Dl2u6_p7.js → chunk-FMBD7UC4-ZZpPqIwQ.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-32W_JFKh.js → chunk-ND2GUHAM-D22DqGs8.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-BmtCt0RT.js → chunk-QZHKN3VN-Bu85S0fw.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK--JstsIgL.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2--JstsIgL.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-D_DXerbn.js → cose-bilkent-S5V4N54A-f1CK1Gwe.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-C3fMtjq2.js → dagre-BM42HDAG-D0Ow8F_n.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-CBiuEoIi.js → diagram-2AECGRRQ-BPrmTWp8.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-J8DRS3up.js → diagram-5GNKFQAL-HccuFAzy.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-DEVjvvjZ.js → diagram-KO2AKTUF-BrS76mbA.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-Bh9hEXeR.js → diagram-LMA3HP47-V7T9lU-5.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-CgV4R96R.js → diagram-OG6HWLK6-DKidyJMR.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-BGCFyfGU.js → erDiagram-TEJ5UH35-DBadZIkp.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-BCaQuiMb.js → flowDiagram-I6XJVG4X-BymfqdNJ.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-B9J27vXf.js → ganttDiagram-6RSMTGT7-DOw340jf.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-C2u3FvFn.js → gitGraphDiagram-PVQCEYII-_8EiD8sl.js} +1 -1
- package/web-shell/assets/{index-BF2Ug_o6.js → index-CKIadvET.js} +1 -1
- package/web-shell/assets/index-D1eXNRHe.js +1389 -0
- package/web-shell/assets/index-DVLD4CQq.css +5 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-VGjh3Icm.js → infoDiagram-5YYISTIA-D61KYQBu.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-8AZWigme.js → ishikawaDiagram-YF4QCWOH-CsiXSpNx.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-CnAVNJU5.js → journeyDiagram-JHISSGLW-Sdfionyh.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-DAh7CFUA.js → kanban-definition-UN3LZRKU-C3WI3Cnl.js} +1 -1
- package/web-shell/assets/{linear-BMHEIvy4.js → linear-Dpigcc62.js} +1 -1
- package/web-shell/assets/{mermaid.core-CpHDMzGU.js → mermaid.core-Ct97pqgW.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-Cf3CMPHf.js → mindmap-definition-RKZ34NQL-BzeaN0rB.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-BpRfWcVA.js → pieDiagram-4H26LBE5-CvjgcbVD.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-kqzUnUwh.js → quadrantDiagram-W4KKPZXB-BUzgTNdH.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-D2FenOqg.js → requirementDiagram-4Y6WPE33-B7zKlgUQ.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-dWDMUdUe.js → sankeyDiagram-5OEKKPKP-Bb9CQgrT.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-CYcL0MEP.js → sequenceDiagram-3UESZ5HK-DJ6V7itG.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-DkpIKZM6.js → stateDiagram-AJRCARHV-IImflERY.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CYI_YoNR.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-B50fgyFY.js → timeline-definition-PNZ67QCA-6Q_uWHKh.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-DMlYXh0E.js → vennDiagram-CIIHVFJN-TmyKyjwv.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-B2iJy8jY.js → wardley-L42UT6IY-CRh9uiPv.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-B-PG81LW.js → wardleyDiagram-YWT4CUSO-59TKAW8w.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-D1N8kSF9.js → xychartDiagram-2RQKCTM6-GCSUIK2L.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/nonInteractiveCli-74XMYNLX.js +0 -143
- package/web-shell/assets/channel-C-gQ4Nim.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-DKEurkx0.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-DKEurkx0.js +0 -1
- package/web-shell/assets/index-Du08qEb3.js +0 -1249
- package/web-shell/assets/index-tq1xUECo.css +0 -5
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-QSG1JRm2.js +0 -1
- package/chunks/{chunk-IAU6HCJZ.js → chunk-D3UEZIQH.js} +6 -6
- /package/chunks/{chunk-LXXMOYPL.js → chunk-VXZBKKQR.js} +0 -0
|
@@ -557,6 +557,7 @@ LSP server configuration is done through `.lsp.json` files in your project root
|
|
|
557
557
|
| -------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------- |
|
|
558
558
|
| `experimental.cron` | boolean | Enable in-session cron/loop tools (`cron_create`, `cron_list`, `cron_delete`) so the model can create recurring prompts. Can be disabled via the `QWEN_CODE_DISABLE_CRON=1` environment variable. Requires restart. | `true` |
|
|
559
559
|
| `experimental.todoStopGuard` | boolean | Allow daemon and ACP sessions to continue after a natural model stop when the current work chain successfully wrote an unfinished top-level Todo list. Adds at most two consecutive primary-model calls without new user input; mid-turn user input starts a fresh two-attempt stage. It is not restored after process restart and is forced off in safe, bare, and Approval `plan` modes. Requires restart. | `false` |
|
|
560
|
+
| `experimental.sessionWriterLease` | boolean | Enable cross-process write fencing for persisted ACP and daemon sessions. The value is frozen when the ACP or daemon process starts. All concurrent ACP writers must enable the setting; mixed versions or configurations remain unsafe. Interactive and headless recorders are unaffected. Requires process restart. | `false` |
|
|
560
561
|
| `experimental.cronRecurringMaxAgeDays` | number | Days a recurring cron/loop job lives before auto-expiring (it fires one final time, then is deleted). Set to `0` to disable expiry so jobs run until deleted — useful for long-running daemon deployments. Can be overridden via the `QWEN_CODE_CRON_MAX_AGE_DAYS` environment variable. Requires restart. | `7` |
|
|
561
562
|
| `experimental.agentTeam` | boolean | Enable agent-team collaboration tools (`team_create`, `task_create`, `task_update`, `send_message`, etc.) for multi-agent coordination. Can also be enabled via `QWEN_CODE_ENABLE_AGENT_TEAM=1`. Requires restart. | `false` |
|
|
562
563
|
| `experimental.artifact` | boolean | Enable artifact tools. Enabled by default. In interactive, non-SDK sessions, the model can publish a self-contained HTML page as an interactive Artifact and open it in the browser. Non-SDK daemon sessions can use metadata-only `record_artifact`. Set this to `false` or use `QWEN_CODE_DISABLE_ARTIFACT=1` to disable both. Requires restart. | `true` |
|
|
@@ -592,6 +593,7 @@ Configures logging and metrics collection for Qwen Code. For more information, s
|
|
|
592
593
|
| `telemetry.otlpEndpoint` | string | The endpoint for the OTLP Exporter. | |
|
|
593
594
|
| `telemetry.otlpProtocol` | string | The protocol for the OTLP Exporter (`grpc` or `http`). | |
|
|
594
595
|
| `telemetry.logPrompts` | boolean | Whether or not to include the content of user prompts in the logs. | |
|
|
596
|
+
| `telemetry.userId` | string | Stable end-user identifier written to GenAI spans as the ARMS extension `gen_ai.user.id`. Prefer a pseudonymous value. Do not set a process-wide value for a shared multi-user daemon or channel instance. | |
|
|
595
597
|
| `telemetry.includeSensitiveSpanAttributes` | boolean | When enabled, attaches verbatim user prompts, system prompts, tool inputs/outputs, and model responses to native OTel span attributes (in addition to log-to-span bridge spans). ⚠️ Streams sensitive data — file contents, shell commands, conversation history — to your OTLP backend. | `false` |
|
|
596
598
|
| `telemetry.sensitiveSpanAttributeMaxLength` | number | Maximum JavaScript string length for each sensitive native OTel span attribute content payload. Must be between `1` and `104857600` (100 MiB). Set lower if your collector or backend rejects large attributes. | `1048576` |
|
|
597
599
|
| `telemetry.outfile` | string | Path to write telemetry to a file. When set, overrides OTLP export. | |
|
|
@@ -638,6 +640,7 @@ Here is an example of a `settings.json` file with the nested structure, new as o
|
|
|
638
640
|
"target": "local",
|
|
639
641
|
"otlpEndpoint": "http://localhost:4317",
|
|
640
642
|
"logPrompts": true,
|
|
643
|
+
"userId": "user-079458",
|
|
641
644
|
"includeSensitiveSpanAttributes": false,
|
|
642
645
|
"sensitiveSpanAttributeMaxLength": 1048576
|
|
643
646
|
},
|
|
@@ -695,6 +698,7 @@ For authentication-related variables (like `OPENAI_*`) and the recommended `.qwe
|
|
|
695
698
|
| `QWEN_TELEMETRY_OTLP_ENDPOINT` | Sets the OTLP endpoint for telemetry. | Overrides the `telemetry.otlpEndpoint` setting. |
|
|
696
699
|
| `QWEN_TELEMETRY_OTLP_PROTOCOL` | Sets the OTLP protocol (`grpc` or `http`). | Overrides the `telemetry.otlpProtocol` setting. |
|
|
697
700
|
| `QWEN_TELEMETRY_LOG_PROMPTS` | Set to `true` or `1` to enable or disable logging of user prompts. Any other value is treated as disabling it. | Overrides the `telemetry.logPrompts` setting. |
|
|
701
|
+
| `QWEN_TELEMETRY_USER_ID` | Sets a stable end-user identifier on interaction, LLM, Tool, and Agent spans as `gen_ai.user.id`. Prefer a pseudonymous value. | Overrides `telemetry.userId` after trimming. A blank value falls back to settings. This is process-wide and must not be used as per-request identity in a shared multi-user process. |
|
|
698
702
|
| `QWEN_TELEMETRY_INCLUDE_SENSITIVE_SPAN_ATTRIBUTES` | Set to `true` or `1` to attach verbatim user prompts, system prompts, tool I/O, and model responses to native OTel span attributes (and keep `prompt` / `function_args` / `response_text` on log-to-span bridge spans). Any other value disables it. | Overrides the `telemetry.includeSensitiveSpanAttributes` setting. ⚠️ Streams sensitive data to your OTLP backend. |
|
|
699
703
|
| `QWEN_TELEMETRY_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH` | Sets the maximum JavaScript string length for each sensitive native OTel span attribute content payload. Must be a positive integer no greater than `104857600` (100 MiB). | Overrides the `telemetry.sensitiveSpanAttributeMaxLength` setting. Default is `1048576` (1 MiB); lower it if your collector or backend rejects large span attributes. |
|
|
700
704
|
| `QWEN_TELEMETRY_OUTFILE` | Sets the file path to write telemetry to. When set, overrides OTLP export. | Overrides the `telemetry.outfile` setting. |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# GitHub
|
|
2
2
|
|
|
3
|
-
This guide covers setting up a Qwen Code channel that monitors GitHub notifications and responds to mentions
|
|
3
|
+
This guide covers setting up a Qwen Code channel that monitors GitHub notifications and responds to mentions, review requests, assignments, and followed-thread activity.
|
|
4
4
|
|
|
5
5
|
## Prerequisites
|
|
6
6
|
|
|
@@ -57,18 +57,18 @@ For GitHub Enterprise Server, set `baseUrl`:
|
|
|
57
57
|
|
|
58
58
|
## Configuration Options
|
|
59
59
|
|
|
60
|
-
| Option | Default | Description
|
|
61
|
-
| ------------------------- | ------------------------ |
|
|
62
|
-
| `token` | (required) | Classic PAT with `notifications` scope
|
|
63
|
-
| `pollInterval` | `60000` | Poll interval in ms
|
|
64
|
-
| `baseUrl` | `https://api.github.com` | API base URL (for GHE)
|
|
65
|
-
| `groupPolicy` | `"disabled"` | Must be `"open"` for notifications to flow
|
|
66
|
-
| `senderPolicy` | `"allowlist"` | Who can trigger the bot
|
|
67
|
-
| `groups.*.requireMention` | `true` |
|
|
60
|
+
| Option | Default | Description |
|
|
61
|
+
| ------------------------- | ------------------------ | -------------------------------------------------------------------------------- |
|
|
62
|
+
| `token` | (required) | Classic PAT with `notifications` scope |
|
|
63
|
+
| `pollInterval` | `60000` | Poll interval in ms |
|
|
64
|
+
| `baseUrl` | `https://api.github.com` | API base URL (for GHE) |
|
|
65
|
+
| `groupPolicy` | `"disabled"` | Must be `"open"` for notifications to flow |
|
|
66
|
+
| `senderPolicy` | `"allowlist"` | Who can trigger the bot |
|
|
67
|
+
| `groups.*.requireMention` | `true` | Require @mentions for ordinary comments; directed notification reasons still run |
|
|
68
68
|
|
|
69
69
|
## ⚠️ Security
|
|
70
70
|
|
|
71
|
-
On a **public repository**, setting `senderPolicy: "open"` allows **any GitHub user** who
|
|
71
|
+
On a **public repository**, setting `senderPolicy: "open"` allows **any GitHub user** who triggers a supported notification reason to submit prompts that drive the agent in your `cwd`. This includes reading code, spending tokens, posting comments, and (subject to permission policy) running tools.
|
|
72
72
|
|
|
73
73
|
Always use `senderPolicy: "allowlist"` with explicit `allowedUsers` on public repos.
|
|
74
74
|
|
|
@@ -76,7 +76,7 @@ Allowlist and pairing entries follow the **username**, not the immutable account
|
|
|
76
76
|
|
|
77
77
|
## Mention Detection
|
|
78
78
|
|
|
79
|
-
The adapter detects mentions by scanning
|
|
79
|
+
The adapter detects mentions by scanning comment text and first-contact issue or PR bodies for `@bot-username` using a case-insensitive regex. It does not trust `reason: "mention"` alone because that value is sticky at the thread level. Other reasons select review, triage, followed-thread, or fallback prompts.
|
|
80
80
|
|
|
81
81
|
## How It Works
|
|
82
82
|
|
|
@@ -85,8 +85,8 @@ The adapter uses GitHub's Notifications API as a wake-up signal:
|
|
|
85
85
|
1. **Poll** `GET /notifications` for unread threads
|
|
86
86
|
2. **Mark read** via `markNotificationsAsRead` (best-effort cleanup, before processing)
|
|
87
87
|
3. **Enumerate** comments via `listComments` within a cursor-based time window
|
|
88
|
-
4. **
|
|
89
|
-
5. **First-contact**:
|
|
88
|
+
4. **Dispatch** by notification reason: strict mention matching, pull request review, issue triage, followed-thread comment aggregation, or per-comment fallback
|
|
89
|
+
5. **First-contact fallback**: a brand-new unread issue/PR body can be processed when no comment was dispatched; mention notifications still require an actual body mention
|
|
90
90
|
|
|
91
91
|
The comment window is `(previousCursor, currentMaxUpdatedAt]` — comments already eligible in a previous poll cycle are excluded by the cursor, preventing duplicate replies even when the async mark-read has not taken effect. If the process crashes mid-processing, the user can re-mention the bot to retry.
|
|
92
92
|
|
|
@@ -96,7 +96,7 @@ Non-comment activity (push, label changes) bumps the notification's `updated_at`
|
|
|
96
96
|
|
|
97
97
|
- **First start skips existing unread notifications.** The cursor initializes to "now" on first launch. Notifications created before the bot starts are not processed unless the thread receives new activity afterwards.
|
|
98
98
|
- If a user marks a notification as read on github.com before the bot's poll cycle, the bot will not process it.
|
|
99
|
-
- The bot does not read
|
|
99
|
+
- The bot does not read comments before the current polling window; `author` and `comment` notifications may aggregate up to 20 comments from that window.
|
|
100
100
|
- Inline PR review comments and review summary bodies are not enumerated; only issue/PR comments are processed.
|
|
101
101
|
- Requires a classic PAT with `notifications` scope. Fine-grained PATs do not support the notifications API.
|
|
102
102
|
|
|
@@ -139,6 +139,8 @@ Function hooks directly call registered JavaScript/TypeScript functions. They ar
|
|
|
139
139
|
|
|
140
140
|
Prompt hooks use an LLM to evaluate hook input and return a decision. This is useful for making intelligent decisions based on context, such as determining whether to allow or block an operation.
|
|
141
141
|
|
|
142
|
+
> **Data handling:** A prompt hook sends its event input to the configured model provider. When file-backed debug logging is enabled, the fully expanded prompt-hook request is also written to the session debug log. Treat hook input and debug logs as potentially sensitive.
|
|
143
|
+
|
|
142
144
|
**How it works:**
|
|
143
145
|
|
|
144
146
|
1. The hook input JSON is injected into your prompt using the `$ARGUMENTS` placeholder
|
|
@@ -184,7 +186,7 @@ Prompt hooks can be used with most hook events, including:
|
|
|
184
186
|
- `PostToolUse` - Evaluate tool results and potentially inject context
|
|
185
187
|
- `Stop` - Determine whether to continue or stop
|
|
186
188
|
- `SubagentStop` - Evaluate subagent results
|
|
187
|
-
- `UserPromptSubmit` - Evaluate or enrich
|
|
189
|
+
- `UserPromptSubmit` - Evaluate or enrich eligible model-bound prompts
|
|
188
190
|
|
|
189
191
|
**Example: Stop Hook**
|
|
190
192
|
|
|
@@ -240,7 +242,7 @@ Hooks fire at specific points during a Qwen Code session. Different events suppo
|
|
|
240
242
|
| `PreToolUse` | Before tool execution | Tool id (`write_file`, `read_file`, `run_shell_command`, etc.) |
|
|
241
243
|
| `PostToolUse` | After successful tool execution | Tool id |
|
|
242
244
|
| `PostToolUseFailure` | After tool execution fails | Tool id |
|
|
243
|
-
| `UserPromptSubmit` |
|
|
245
|
+
| `UserPromptSubmit` | Before supported model invocations | None |
|
|
244
246
|
| `SessionStart` | When session starts or resumes | Source (`startup`, `resume`, `clear`, `compact`) |
|
|
245
247
|
| `SessionEnd` | When session ends | Reason (`clear`, `logout`, `prompt_input_exit`, etc.) |
|
|
246
248
|
| `MessageDisplay` | Repeatedly, as the reply streams | None (always fires) |
|
|
@@ -327,7 +329,18 @@ Hooks fire at specific points during a Qwen Code session. Different events suppo
|
|
|
327
329
|
|
|
328
330
|
### Hook Input Structure
|
|
329
331
|
|
|
330
|
-
All
|
|
332
|
+
All hook executors receive the standardized event input. The delivery boundary depends on the executor:
|
|
333
|
+
|
|
334
|
+
| Hook type | Input recipient |
|
|
335
|
+
| :--------- | :-------------------------------------------------------------- |
|
|
336
|
+
| `command` | Child process through JSON on `stdin` |
|
|
337
|
+
| `http` | Configured endpoint through a JSON `POST` body |
|
|
338
|
+
| `function` | Trusted in-process callback |
|
|
339
|
+
| `prompt` | Configured model provider after the input replaces `$ARGUMENTS` |
|
|
340
|
+
|
|
341
|
+
Function hooks are trusted code running in the Qwen process. They receive an in-process object, so fields must not be treated as immutable against a function hook.
|
|
342
|
+
|
|
343
|
+
Qwen does not control whether a hook process, endpoint, callback, or model provider retains or forwards its input. Review each configured executor's data-handling policy.
|
|
331
344
|
|
|
332
345
|
**Common Fields:**
|
|
333
346
|
|
|
@@ -343,6 +356,8 @@ All hooks receive standardized input in JSON format through stdin (command) or P
|
|
|
343
356
|
|
|
344
357
|
Event-specific fields are added based on the hook type. When running in a subagent, `agent_id` and `agent_type` are additionally included.
|
|
345
358
|
|
|
359
|
+
Hook input is a forward-extensible JSON contract: new optional fields can be added to existing events. Consumers should ignore unknown fields. A strict decoder that rejects unknown properties must be updated to explicitly allow each new optional field before upgrading Qwen Code. For security-sensitive hooks, a decoder failure can change fail-open or fail-closed behavior, so administrators must validate the upgraded payload against the deployed hook before rollout.
|
|
360
|
+
|
|
346
361
|
### Hook Output Structure
|
|
347
362
|
|
|
348
363
|
Hook output is returned via `stdout` (command) or HTTP response body (http) as JSON.
|
|
@@ -491,16 +506,33 @@ The `permissionDecision` value controls whether the tool runs:
|
|
|
491
506
|
|
|
492
507
|
#### UserPromptSubmit
|
|
493
508
|
|
|
494
|
-
**Purpose**: Executed
|
|
509
|
+
**Purpose**: Executed before supported model invocations to validate, block, or enrich the current model-bound prompt. The event currently covers `UserQuery`, `ToolResult`, and `Hook` sends, while `Retry`, `Steer`, `Cron`, `Notification`, and `Teammate` sends are skipped. It can therefore occur on continuation paths, and `prompt` must not be assumed to be raw user input.
|
|
495
510
|
|
|
496
511
|
**Event-specific fields**:
|
|
497
512
|
|
|
498
513
|
```json
|
|
499
514
|
{
|
|
500
|
-
"prompt": "
|
|
515
|
+
"prompt": "current model-bound prompt for this hook invocation",
|
|
516
|
+
"submitted_prompt": "optional user text captured at a supported interactive TUI submission boundary"
|
|
501
517
|
}
|
|
502
518
|
```
|
|
503
519
|
|
|
520
|
+
`submitted_prompt` is optional. It is present only when Qwen can carry provenance from a supported interactive TUI submission to a fresh `UserQuery`. It is omitted for unsupported producers and machine-driven paths such as same-turn steering, tool-result continuations, retries, cron, notifications, and teammate traffic. ACP, headless, `serve`, SDK, and remote-input paths do not produce it in this version.
|
|
521
|
+
|
|
522
|
+
Deferred input can retain the field when its provenance remains complete. A combined batch retains provenance only when every constituent item has it; edited, partially known, or otherwise ambiguous input omits the field. Prompt, command, and shell-history navigation or selected search matches, cross-restart stash restores, and conversation rewind restores also omit it because those paths can surface model-bound text without its original provenance. Consumers that require user-submitted text should treat absence as unavailable rather than falling back to `prompt`.
|
|
523
|
+
|
|
524
|
+
After restored or provenance-unavailable model-bound input is cleared or submitted, the composer also clears its undo and redo history. This prevents undo from restoring expanded text after its marker or sidecar has been consumed.
|
|
525
|
+
|
|
526
|
+
Large-paste placeholders remain compact in `submitted_prompt`; the expanded pasted content appears only in `prompt`. Consumers should treat the field as a TUI text projection rather than a byte-for-byte record of clipboard input.
|
|
527
|
+
|
|
528
|
+
Any non-empty input present while Vim mode is enabled omits `submitted_prompt`, including after Vim is disabled, because Vim registers do not carry provenance in this version. This conservative rule also covers drafts entered before enabling Vim. Clearing the composer starts a new eligible input.
|
|
529
|
+
|
|
530
|
+
This field is provenance, not authentication, tenant identity, authorization, or DLP. It is caller-supplied data. Every executor configured for this event receives it; in particular, HTTP hooks send it to their endpoint and prompt hooks send it to their model provider.
|
|
531
|
+
|
|
532
|
+
When both fields are present, prompt-hook payloads contain overlapping text and can consume additional model input tokens. There is no per-hook field suppression in this version.
|
|
533
|
+
|
|
534
|
+
Sequential UserPromptSubmit hooks can append `additionalContext` to `prompt`; `submitted_prompt` continues to represent the captured submission. Function hooks are trusted same-process code and are not constrained by an immutability guarantee.
|
|
535
|
+
|
|
504
536
|
**Output Options**:
|
|
505
537
|
|
|
506
538
|
- `decision`: "allow", "deny", "block", or "ask"
|
|
@@ -1289,9 +1321,11 @@ A PostToolUse HTTP hook that sends all tool execution records to a remote audit
|
|
|
1289
1321
|
}
|
|
1290
1322
|
```
|
|
1291
1323
|
|
|
1292
|
-
### Example 3:
|
|
1324
|
+
### Example 3: Interactive TUI Submitted Prompt Validation Hook
|
|
1325
|
+
|
|
1326
|
+
To inspect the current model-bound content instead, read `prompt`. That field can include generated or expanded content, is not the original user input, and does not imply that `UserPromptSubmit` covers every model send. Do not silently fall back from `submitted_prompt` to `prompt` when source provenance is required.
|
|
1293
1327
|
|
|
1294
|
-
A UserPromptSubmit hook that validates
|
|
1328
|
+
A UserPromptSubmit hook that validates supported interactive TUI submissions for sensitive information and provides context for long prompts. It skips invocations where source provenance is unavailable. The keyword check is illustrative and is not a complete DLP policy:
|
|
1295
1329
|
|
|
1296
1330
|
**prompt_validator.py**
|
|
1297
1331
|
|
|
@@ -1305,9 +1339,12 @@ try:
|
|
|
1305
1339
|
input_data = json.load(sys.stdin)
|
|
1306
1340
|
except json.JSONDecodeError as e:
|
|
1307
1341
|
print(f"Error: Invalid JSON input: {e}", file=sys.stderr)
|
|
1308
|
-
exit(1)
|
|
1342
|
+
sys.exit(1)
|
|
1309
1343
|
|
|
1310
|
-
user_prompt = input_data.get("
|
|
1344
|
+
user_prompt = input_data.get("submitted_prompt")
|
|
1345
|
+
if user_prompt is None:
|
|
1346
|
+
# Do not mistake model-bound or machine-generated content for raw input.
|
|
1347
|
+
sys.exit(0)
|
|
1311
1348
|
|
|
1312
1349
|
# Sensitive words list
|
|
1313
1350
|
sensitive_words = ["password", "secret", "token", "api_key"]
|
|
@@ -1324,7 +1361,7 @@ for word in sensitive_words:
|
|
|
1324
1361
|
}
|
|
1325
1362
|
}
|
|
1326
1363
|
print(json.dumps(output))
|
|
1327
|
-
exit(0)
|
|
1364
|
+
sys.exit(0)
|
|
1328
1365
|
|
|
1329
1366
|
# Check prompt length and add warning context if too long
|
|
1330
1367
|
if len(user_prompt) > 1000:
|
|
@@ -1335,10 +1372,10 @@ if len(user_prompt) > 1000:
|
|
|
1335
1372
|
}
|
|
1336
1373
|
}
|
|
1337
1374
|
print(json.dumps(output))
|
|
1338
|
-
exit(0)
|
|
1375
|
+
sys.exit(0)
|
|
1339
1376
|
|
|
1340
1377
|
# No processing needed for normal cases
|
|
1341
|
-
exit(0)
|
|
1378
|
+
sys.exit(0)
|
|
1342
1379
|
```
|
|
1343
1380
|
|
|
1344
1381
|
## Troubleshooting
|
|
@@ -1347,5 +1384,5 @@ exit(0)
|
|
|
1347
1384
|
- Verify hook script permissions and executability
|
|
1348
1385
|
- Ensure proper JSON formatting in hook outputs
|
|
1349
1386
|
- Use specific matcher patterns to avoid unintended hook execution
|
|
1350
|
-
- Use `--debug` mode to see detailed hook matching and execution information
|
|
1387
|
+
- Use `--debug` mode to see detailed hook matching and execution information. Prompt-hook inputs can be written to the session debug log, so apply appropriate access and retention controls.
|
|
1351
1388
|
- Temporarily disable all hooks: add `"disableAllHooks": true` in settings
|
|
@@ -69,7 +69,7 @@ This document lists the available keyboard shortcuts in Qwen Code.
|
|
|
69
69
|
|
|
70
70
|
## History scrollback
|
|
71
71
|
|
|
72
|
-
Active
|
|
72
|
+
Active when `ui.useTerminalBuffer` is enabled (Settings → UI → Virtualized History), screen reader mode is off, and Qwen Code is running in a compatible interactive terminal (`stdout` is a TTY, CI is inactive, and `TERM` is not `dumb`), which is the default for ordinary non-screen-reader sessions. In that mode conversation history is rendered inside an in-app viewport instead of the host terminal scrollback, so the keys below replace the terminal's native scroll.
|
|
73
73
|
|
|
74
74
|
| Shortcut | Description |
|
|
75
75
|
| --------------- | ---------------------------------------------------- |
|
|
@@ -87,7 +87,7 @@ When `ui.useTerminalBuffer` is on, the terminal forwards mouse events to qwen-co
|
|
|
87
87
|
|
|
88
88
|
Inside tmux, some terminals translate trackpad or wheel gestures into plain `Up Arrow` and `Down Arrow` sequences before qwen-code sees them. Those bytes are identical to real arrow-key presses, so qwen-code cannot tell whether you meant to scroll the viewport or navigate prompt history.
|
|
89
89
|
|
|
90
|
-
If trackpad scrolling changes the prompt history in tmux,
|
|
90
|
+
If trackpad scrolling changes the prompt history in tmux, make sure `ui.useTerminalBuffer` is enabled; then use `Shift+Up` / `Shift+Down`, or the mouse wheel when tmux forwards wheel events to the app. If you prefer host scrollback, adjust your tmux mouse bindings for wheel events.
|
|
91
91
|
|
|
92
92
|
## IDE Integration
|
|
93
93
|
|
|
@@ -59,6 +59,7 @@ This guide provides solutions to common issues and debugging tips, including top
|
|
|
59
59
|
- A: Start Qwen Code with the `--safe-mode` flag to disable all customizations — context files, hooks, extensions, skills, MCP servers, custom subagents (only built-in subagents load), permission rules, settings-sourced approval mode overrides, memory features, and sandbox settings — for the session. Note: the CLI flags `--yolo` and `--approval-mode` still take effect in safe mode. If the problem disappears in safe mode, re-enable your customizations one at a time to find the culprit.
|
|
60
60
|
- Example: `qwen --safe-mode`
|
|
61
61
|
- Alternative: set the environment variable `QWEN_CODE_SAFE_MODE=true` if the CLI cannot accept flags.
|
|
62
|
+
- Note: "MCP servers" here means servers configured in `settings.json` / project `.mcp.json` — local, ambient state that safe mode is meant to isolate against. MCP servers you explicitly supply for the current invocation (an embedding ACP client's `session/new` `mcpServers`, or `--mcp-config`) are not local/ambient state and are still honored under safe mode.
|
|
62
63
|
|
|
63
64
|
## Common error messages and solutions
|
|
64
65
|
|
|
@@ -99,7 +100,7 @@ This guide provides solutions to common issues and debugging tips, including top
|
|
|
99
100
|
- **Trackpad scrolling in tmux changes prompt history instead of scrolling the conversation**
|
|
100
101
|
- **Issue:** In a tmux session, trackpad or wheel scrolling may cycle through previous prompts, similar to pressing `Up Arrow` or `Down Arrow`.
|
|
101
102
|
- **Cause:** tmux can translate wheel gestures into plain arrow-key sequences. Those sequences are indistinguishable from real arrow-key presses by the time qwen-code receives them.
|
|
102
|
-
- **Solution:**
|
|
103
|
+
- **Solution:** If screen reader mode is disabled, make sure `ui.useTerminalBuffer` is enabled; then use `Shift+Up` / `Shift+Down`, or the mouse wheel when tmux forwards wheel events to the app. If you prefer host scrollback, adjust your tmux mouse bindings for wheel events.
|
|
103
104
|
|
|
104
105
|
## IDE Companion not connecting
|
|
105
106
|
|
package/bundled/review/SKILL.md
CHANGED
|
@@ -646,6 +646,21 @@ A `C=0` outcome — Approve, or a Comment with no Critical — is a claim that n
|
|
|
646
646
|
|
|
647
647
|
Two failure modes this closes, both observed in this repo's own dogfood: reporting a Critical that cites code **not present** at the reviewed commit (a fabricated blocker), and submitting `C=0` while a **live, already-filed** Critical still stands (a dropped blocker). The event must follow from reading the code, never from the finding count or the thread flags.
|
|
648
648
|
|
|
649
|
+
### The executable-script lint (deterministic — you run it, not an agent)
|
|
650
|
+
|
|
651
|
+
**Before composing the verdict, lint the executable scripts the diff changed** — for every review that has a tree to lint: a same-repo **PR** review (the fetch worktree) and a **local** review (the project root you are already in). Only a cross-repo **lightweight** review is exempt (it has no tree). A diff's shell — a `.sh`/`.bash` file, a `.github/workflows/*` `run:` block, a Dockerfile — is code whose bugs (an unquoted `$x` that word-splits, a `${PIPESTATUS[1]}` read after the array was reset) hide from a read of a long YAML and are caught by _running_ the checker. Measured, twice: a model told in prose to run the step scripts read them and did not run them (0/4), and even the strongest model's attacker persona walked into a double-execute bug and declared it correct. So this is **not** an agent's job and **not** a lens to remember — it is a command you run:
|
|
652
|
+
|
|
653
|
+
```bash
|
|
654
|
+
# --worktree: the PR's `worktreePath` (PR review), or `.` — the project root — (local review).
|
|
655
|
+
# --out: next to the plan; `qwen-review-pr-<n>-script-lint.json` for a PR, `qwen-review-script-lint.json` for a local review.
|
|
656
|
+
"${QWEN_CODE_CLI:-qwen}" review script-lint \
|
|
657
|
+
--plan <the plan report from Step 1> \
|
|
658
|
+
--worktree <worktreePath for a PR review, or . for a local review> \
|
|
659
|
+
--out <the plan report's directory>/<the derived report name>
|
|
660
|
+
```
|
|
661
|
+
|
|
662
|
+
**You do not read its output or decide anything from it — `compose-review` does.** It derives the report's path from the plan (the pr-numbered name above, next to the plan; `qwen-review-script-lint.json` for a local review), reads it as the sole authority, and turns it into the verdict itself: a finding on a **changed line** above cosmetic `style` becomes a **pre-confirmed `[lint]` Critical** that needs no verifier (the tool already ran); an **uninstalled or crashed** checker becomes **unreviewed scope** that caps a would-be Approve; a **deferred** checker — a workflow's embedded `run:` shell, which `actionlint` would lint but whose output this env cannot trust — is **disclosed in the body on every verdict (including Approve) but does not cap**, because it is a tool limitation, not a gap the author can close; and — the proof it ran — a diff that carries an executable script but produced **no readable report** is itself unreviewed (fail closed). That is the whole reason it runs here rather than inside an agent: neither the blocker nor its severity depends on a model, and skipping the command cannot slip an Approve past the fail-closed gate. It is harmless when the diff has no scripts (it reports "nothing to lint"), and it must write to the derived path or `compose-review` will not find it.
|
|
663
|
+
|
|
649
664
|
### Verdict
|
|
650
665
|
|
|
651
666
|
**You do not decide the verdict, and you do not write it. Ask for it:**
|
|
@@ -4,71 +4,71 @@ import {
|
|
|
4
4
|
MINIMUM_MAX_HEIGHT,
|
|
5
5
|
MaxSizedBox,
|
|
6
6
|
setMaxSizedBoxDebugging
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-U3E3UQAA.js";
|
|
8
|
+
import "./chunk-GKX7E4CO.js";
|
|
9
9
|
import "./chunk-SV5PQVQE.js";
|
|
10
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-GATT5TKW.js";
|
|
11
|
+
import "./chunk-UWMLWVCA.js";
|
|
11
12
|
import "./chunk-5QWWOFGG.js";
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-IPUUTYMV.js";
|
|
13
|
+
import "./chunk-YDLJGZHL.js";
|
|
14
14
|
import "./chunk-2MIN6GRR.js";
|
|
15
15
|
import "./chunk-QHTIBUWB.js";
|
|
16
16
|
import "./chunk-RKUWKYED.js";
|
|
17
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-HUK2P4RS.js";
|
|
18
18
|
import "./chunk-TWPJO254.js";
|
|
19
19
|
import "./chunk-H6XPXXMH.js";
|
|
20
20
|
import "./chunk-5M6IDOMF.js";
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-UPUG4GXM.js";
|
|
22
|
+
import "./chunk-64LQLPL7.js";
|
|
23
|
+
import "./chunk-2LQTH543.js";
|
|
24
24
|
import "./chunk-KRXPRVGL.js";
|
|
25
|
-
import "./chunk-
|
|
25
|
+
import "./chunk-DJGYJDYR.js";
|
|
26
|
+
import "./chunk-CVHIL5IG.js";
|
|
26
27
|
import "./chunk-IRH27ZC2.js";
|
|
27
28
|
import "./chunk-QHWCP53L.js";
|
|
28
|
-
import "./chunk-
|
|
29
|
+
import "./chunk-PONHVBRT.js";
|
|
29
30
|
import "./chunk-T26EAKDL.js";
|
|
30
31
|
import "./chunk-6PVPNMXU.js";
|
|
31
|
-
import "./chunk-3YAW4B2W.js";
|
|
32
32
|
import "./chunk-CPBF7KYF.js";
|
|
33
|
-
import "./chunk-
|
|
34
|
-
import "./chunk-
|
|
35
|
-
import "./chunk-
|
|
36
|
-
import "./chunk-
|
|
37
|
-
import "./chunk-
|
|
33
|
+
import "./chunk-6QIGFD5W.js";
|
|
34
|
+
import "./chunk-XWWKIXVD.js";
|
|
35
|
+
import "./chunk-75GFAX4R.js";
|
|
36
|
+
import "./chunk-OKF7JF3R.js";
|
|
37
|
+
import "./chunk-JSD33JG6.js";
|
|
38
38
|
import "./chunk-S6LOFUVP.js";
|
|
39
39
|
import "./chunk-JCW2R7WC.js";
|
|
40
|
-
import "./chunk-
|
|
40
|
+
import "./chunk-2DN4J57Y.js";
|
|
41
41
|
import "./chunk-ZPJWUGCS.js";
|
|
42
|
-
import "./chunk-
|
|
42
|
+
import "./chunk-2LKVPASC.js";
|
|
43
43
|
import "./chunk-NAVJD2PQ.js";
|
|
44
|
-
import "./chunk-
|
|
45
|
-
import "./chunk-
|
|
44
|
+
import "./chunk-LW3RFMG7.js";
|
|
45
|
+
import "./chunk-W4MIWP6M.js";
|
|
46
46
|
import "./chunk-DGEIYUC3.js";
|
|
47
47
|
import "./chunk-MPHPFVKK.js";
|
|
48
48
|
import "./chunk-GLNBDYUX.js";
|
|
49
49
|
import "./chunk-DJ2GSRLV.js";
|
|
50
|
-
import "./chunk-
|
|
51
|
-
import "./chunk-
|
|
50
|
+
import "./chunk-P2YNZWXZ.js";
|
|
51
|
+
import "./chunk-75MIQ3LV.js";
|
|
52
52
|
import "./chunk-2J3OJGTL.js";
|
|
53
53
|
import "./chunk-P3QQPMQA.js";
|
|
54
|
-
import "./chunk-
|
|
54
|
+
import "./chunk-RPLGZJV2.js";
|
|
55
55
|
import "./chunk-GLCZKT5V.js";
|
|
56
|
-
import "./chunk-
|
|
57
|
-
import "./chunk-
|
|
56
|
+
import "./chunk-DZLYR4U3.js";
|
|
57
|
+
import "./chunk-BWKCTLEJ.js";
|
|
58
58
|
import "./chunk-VGC4I5JJ.js";
|
|
59
|
-
import "./chunk-
|
|
60
|
-
import "./chunk-
|
|
61
|
-
import "./chunk-
|
|
62
|
-
import "./chunk-
|
|
59
|
+
import "./chunk-SGFT55XI.js";
|
|
60
|
+
import "./chunk-Y4IHBGBP.js";
|
|
61
|
+
import "./chunk-Y6AXW2OG.js";
|
|
62
|
+
import "./chunk-LNHZ3A4I.js";
|
|
63
63
|
import "./chunk-46UV252V.js";
|
|
64
|
-
import "./chunk-
|
|
65
|
-
import "./chunk-
|
|
66
|
-
import "./chunk-
|
|
67
|
-
import "./chunk-
|
|
68
|
-
import "./chunk-
|
|
64
|
+
import "./chunk-ZBVS26BY.js";
|
|
65
|
+
import "./chunk-WZRWHXFE.js";
|
|
66
|
+
import "./chunk-A3NDJ5SB.js";
|
|
67
|
+
import "./chunk-7XATOOE7.js";
|
|
68
|
+
import "./chunk-BGTQCTQW.js";
|
|
69
69
|
import "./chunk-W4RQUHY3.js";
|
|
70
70
|
import "./chunk-S7W2GKIO.js";
|
|
71
|
-
import "./chunk-
|
|
71
|
+
import "./chunk-UHUSJ6X7.js";
|
|
72
72
|
import "./chunk-VOQXFAY5.js";
|
|
73
73
|
import "./chunk-75DOP5OR.js";
|
|
74
74
|
import "./chunk-DMTGGOSA.js";
|
|
@@ -4,47 +4,47 @@ import {
|
|
|
4
4
|
ConfigContext,
|
|
5
5
|
SessionPicker,
|
|
6
6
|
SettingsContext
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-ML5M5XOY.js";
|
|
8
|
+
import "./chunk-KY3NRFJ5.js";
|
|
8
9
|
import {
|
|
9
10
|
KeypressProvider
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-AL62VKMS.js";
|
|
12
|
+
import "./chunk-KADQPLPX.js";
|
|
13
|
+
import "./chunk-TUQ36KWK.js";
|
|
14
|
+
import "./chunk-M7OONWYU.js";
|
|
14
15
|
import "./chunk-4WGODMVR.js";
|
|
15
16
|
import "./chunk-KW7NOTN6.js";
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-VV6QF662.js";
|
|
17
|
+
import "./chunk-U3E3UQAA.js";
|
|
18
|
+
import "./chunk-GKX7E4CO.js";
|
|
19
19
|
import {
|
|
20
20
|
require_jsx_runtime
|
|
21
21
|
} from "./chunk-SV5PQVQE.js";
|
|
22
|
+
import "./chunk-GATT5TKW.js";
|
|
22
23
|
import {
|
|
23
24
|
Box_default,
|
|
24
25
|
render_default,
|
|
25
26
|
use_app_default
|
|
26
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-UWMLWVCA.js";
|
|
27
28
|
import {
|
|
28
29
|
require_react
|
|
29
30
|
} from "./chunk-5QWWOFGG.js";
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-
|
|
32
|
-
import "./chunk-
|
|
33
|
-
import "./chunk-6K2CPEAB.js";
|
|
31
|
+
import "./chunk-FW4M4GA7.js";
|
|
32
|
+
import "./chunk-HKFEPLKW.js";
|
|
33
|
+
import "./chunk-YDLJGZHL.js";
|
|
34
34
|
import "./chunk-2MIN6GRR.js";
|
|
35
35
|
import "./chunk-QHTIBUWB.js";
|
|
36
36
|
import "./chunk-QTERJVPZ.js";
|
|
37
|
+
import "./chunk-ZSQ5LDBH.js";
|
|
37
38
|
import "./chunk-E5Z2AVNV.js";
|
|
38
39
|
import "./chunk-57OAHC2Y.js";
|
|
39
|
-
import "./chunk-
|
|
40
|
-
import "./chunk-VCBKBEU7.js";
|
|
40
|
+
import "./chunk-7A4ZDITM.js";
|
|
41
41
|
import "./chunk-RKUWKYED.js";
|
|
42
|
-
import "./chunk-
|
|
43
|
-
import "./chunk-
|
|
42
|
+
import "./chunk-ATZOB5Y2.js";
|
|
43
|
+
import "./chunk-NNERMV7T.js";
|
|
44
44
|
import "./chunk-GOXKNSDZ.js";
|
|
45
|
-
import "./chunk-6PEXNQTX.js";
|
|
46
45
|
import "./chunk-IDS7MSUP.js";
|
|
47
|
-
import "./chunk-
|
|
46
|
+
import "./chunk-6PEXNQTX.js";
|
|
47
|
+
import "./chunk-4WSL256B.js";
|
|
48
48
|
import "./chunk-ALGGS7UH.js";
|
|
49
49
|
import "./chunk-MR3PXB6E.js";
|
|
50
50
|
import {
|
|
@@ -53,63 +53,63 @@ import {
|
|
|
53
53
|
import {
|
|
54
54
|
SessionService,
|
|
55
55
|
getGitBranch
|
|
56
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-HUK2P4RS.js";
|
|
57
57
|
import "./chunk-TWPJO254.js";
|
|
58
58
|
import "./chunk-H6XPXXMH.js";
|
|
59
59
|
import "./chunk-5M6IDOMF.js";
|
|
60
|
-
import "./chunk-
|
|
61
|
-
import "./chunk-
|
|
62
|
-
import "./chunk-
|
|
60
|
+
import "./chunk-UPUG4GXM.js";
|
|
61
|
+
import "./chunk-64LQLPL7.js";
|
|
62
|
+
import "./chunk-2LQTH543.js";
|
|
63
63
|
import "./chunk-KRXPRVGL.js";
|
|
64
|
-
import "./chunk-
|
|
64
|
+
import "./chunk-DJGYJDYR.js";
|
|
65
|
+
import "./chunk-CVHIL5IG.js";
|
|
65
66
|
import "./chunk-IRH27ZC2.js";
|
|
66
67
|
import "./chunk-QHWCP53L.js";
|
|
67
|
-
import "./chunk-
|
|
68
|
+
import "./chunk-PONHVBRT.js";
|
|
68
69
|
import "./chunk-T26EAKDL.js";
|
|
69
70
|
import "./chunk-6PVPNMXU.js";
|
|
70
|
-
import "./chunk-3YAW4B2W.js";
|
|
71
71
|
import "./chunk-CPBF7KYF.js";
|
|
72
|
-
import "./chunk-
|
|
73
|
-
import "./chunk-
|
|
74
|
-
import "./chunk-
|
|
75
|
-
import "./chunk-
|
|
76
|
-
import "./chunk-
|
|
72
|
+
import "./chunk-6QIGFD5W.js";
|
|
73
|
+
import "./chunk-XWWKIXVD.js";
|
|
74
|
+
import "./chunk-75GFAX4R.js";
|
|
75
|
+
import "./chunk-OKF7JF3R.js";
|
|
76
|
+
import "./chunk-JSD33JG6.js";
|
|
77
77
|
import "./chunk-S6LOFUVP.js";
|
|
78
78
|
import "./chunk-JCW2R7WC.js";
|
|
79
|
-
import "./chunk-
|
|
79
|
+
import "./chunk-2DN4J57Y.js";
|
|
80
80
|
import "./chunk-ZPJWUGCS.js";
|
|
81
|
-
import "./chunk-
|
|
81
|
+
import "./chunk-2LKVPASC.js";
|
|
82
82
|
import "./chunk-NAVJD2PQ.js";
|
|
83
|
-
import "./chunk-
|
|
84
|
-
import "./chunk-
|
|
83
|
+
import "./chunk-LW3RFMG7.js";
|
|
84
|
+
import "./chunk-W4MIWP6M.js";
|
|
85
85
|
import "./chunk-DGEIYUC3.js";
|
|
86
86
|
import "./chunk-MPHPFVKK.js";
|
|
87
87
|
import "./chunk-GLNBDYUX.js";
|
|
88
88
|
import "./chunk-DJ2GSRLV.js";
|
|
89
|
-
import "./chunk-
|
|
90
|
-
import "./chunk-
|
|
89
|
+
import "./chunk-P2YNZWXZ.js";
|
|
90
|
+
import "./chunk-75MIQ3LV.js";
|
|
91
91
|
import "./chunk-2J3OJGTL.js";
|
|
92
92
|
import "./chunk-P3QQPMQA.js";
|
|
93
|
-
import "./chunk-
|
|
93
|
+
import "./chunk-RPLGZJV2.js";
|
|
94
94
|
import "./chunk-GLCZKT5V.js";
|
|
95
|
-
import "./chunk-
|
|
96
|
-
import "./chunk-
|
|
95
|
+
import "./chunk-DZLYR4U3.js";
|
|
96
|
+
import "./chunk-BWKCTLEJ.js";
|
|
97
97
|
import "./chunk-VGC4I5JJ.js";
|
|
98
|
-
import "./chunk-
|
|
99
|
-
import "./chunk-
|
|
100
|
-
import "./chunk-
|
|
101
|
-
import "./chunk-
|
|
98
|
+
import "./chunk-SGFT55XI.js";
|
|
99
|
+
import "./chunk-Y4IHBGBP.js";
|
|
100
|
+
import "./chunk-Y6AXW2OG.js";
|
|
101
|
+
import "./chunk-LNHZ3A4I.js";
|
|
102
102
|
import "./chunk-46UV252V.js";
|
|
103
|
-
import "./chunk-
|
|
104
|
-
import "./chunk-
|
|
105
|
-
import "./chunk-
|
|
106
|
-
import "./chunk-
|
|
107
|
-
import "./chunk-
|
|
103
|
+
import "./chunk-ZBVS26BY.js";
|
|
104
|
+
import "./chunk-WZRWHXFE.js";
|
|
105
|
+
import "./chunk-A3NDJ5SB.js";
|
|
106
|
+
import "./chunk-7XATOOE7.js";
|
|
107
|
+
import "./chunk-BGTQCTQW.js";
|
|
108
108
|
import "./chunk-W4RQUHY3.js";
|
|
109
109
|
import "./chunk-S7W2GKIO.js";
|
|
110
|
-
import "./chunk-
|
|
110
|
+
import "./chunk-UHUSJ6X7.js";
|
|
111
111
|
import "./chunk-VOQXFAY5.js";
|
|
112
|
-
import "./chunk-
|
|
112
|
+
import "./chunk-XBZQT63P.js";
|
|
113
113
|
import "./chunk-75DOP5OR.js";
|
|
114
114
|
import "./chunk-DMTGGOSA.js";
|
|
115
115
|
import "./chunk-YQ3U5MUC.js";
|
|
@@ -9,8 +9,8 @@ import {
|
|
|
9
9
|
markAcpStartup,
|
|
10
10
|
recordAcpConfigStartupEvent,
|
|
11
11
|
resetAcpStartupProfilerForTesting
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-3L2SPEBH.js";
|
|
13
|
+
import "./chunk-XZC5VLBZ.js";
|
|
14
14
|
import "./chunk-5O2XNYP6.js";
|
|
15
15
|
import "./chunk-J2S4EL5Y.js";
|
|
16
16
|
export {
|