@qwen-code/qwen-code 0.22.0 → 0.22.1
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/computer-use/SKILL.md +229 -0
- package/bundled/computer-use/agents/openai.yaml +4 -0
- package/bundled/coordinate/SKILL.md +5 -5
- package/bundled/qc-helper/docs/configuration/auth.md +7 -7
- package/bundled/qc-helper/docs/configuration/model-providers.md +70 -9
- package/bundled/qc-helper/docs/configuration/settings.md +40 -40
- package/bundled/qc-helper/docs/extension/introduction.md +3 -1
- package/bundled/qc-helper/docs/features/channels/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +12 -0
- package/bundled/qc-helper/docs/features/channels/dws.md +120 -0
- package/bundled/qc-helper/docs/features/channels/overview.md +3 -3
- package/bundled/qc-helper/docs/features/code-review.md +25 -21
- package/bundled/qc-helper/docs/features/commands.md +2 -2
- package/bundled/qc-helper/docs/features/computer-use.md +57 -51
- package/bundled/qc-helper/docs/features/mcp.md +35 -12
- package/bundled/qc-helper/docs/features/sub-agents.md +1 -1
- package/bundled/qc-helper/docs/features/worktree.md +1 -1
- package/bundled/qc-helper/docs/overview.md +1 -1
- package/bundled/qc-helper/docs/quickstart.md +1 -1
- package/bundled/qc-helper/docs/qwen-serve.md +29 -6
- package/bundled/review/SKILL.md +119 -417
- package/bundled/review/references/aone.md +18 -0
- package/bundled/review/references/persistence.md +105 -0
- package/bundled/review/references/posting.md +270 -0
- package/chunks/MaxSizedBox-UUTUE42J.js +112 -0
- package/chunks/{StandaloneSessionPicker-KTHPCSR6.js → StandaloneSessionPicker-XF2TVJFK.js} +87 -86
- package/chunks/{acp-startup-profiler-T4GEAPLX.js → acp-startup-profiler-GNYAL6LI.js} +2 -2
- package/chunks/{acpAgent-CRY3JZ5O.js → acpAgent-GY53MJIW.js} +2216 -1931
- package/chunks/agent-7U6CC5KF.js +97 -0
- package/chunks/agent-headless-32O4L2CT.js +87 -0
- package/chunks/{anthropicContentGenerator-Y2OX6LS4.js → anthropicContentGenerator-U76GTVB6.js} +128 -58
- package/chunks/{artifact-tool-SBXMTVCB.js → artifact-tool-XDJCZZCF.js} +2 -2
- package/chunks/{askUserQuestion-KEQJRFD6.js → askUserQuestion-ZXXERLEV.js} +2 -2
- package/chunks/bridge-DFX2FFH4.js +119 -0
- package/chunks/{ca-D3F4S6NG.js → ca-7HPYOYSZ.js} +3 -0
- package/chunks/{channel-management-service-IRTT7RNE.js → channel-management-service-HXXS3HOZ.js} +4 -4
- package/chunks/channel-settings-store-ELLH2M4M.js +117 -0
- package/chunks/{channel-worker-group-BJNMR2MP.js → channel-worker-group-EVDC2P4K.js} +8 -7
- package/chunks/{channel-worker-manager-EMA7CQDJ.js → channel-worker-manager-IJJZHGEI.js} +8 -7
- package/chunks/{channel-worker-supervisor-F6I6WSWW.js → channel-worker-supervisor-YSKB5GVB.js} +12 -7
- package/chunks/{chunk-2TRNCJK4.js → chunk-27ONXAFY.js} +1 -1
- package/chunks/{chunk-OVH5Y7KS.js → chunk-2CRNTW2B.js} +19 -3
- package/chunks/{read-package-up-UXSW3YPB.js → chunk-2EAZ43JQ.js} +1 -0
- package/chunks/{chunk-DB2OKNTU.js → chunk-2FN2HNTI.js} +2 -2
- package/chunks/{chunk-KM73TBQ4.js → chunk-2LD5U7Q3.js} +31 -0
- package/chunks/{chunk-QJHPWLZC.js → chunk-2MHGD7EE.js} +1 -1
- package/chunks/{chunk-BMCSKS37.js → chunk-2NCVUT3C.js} +6 -6
- package/chunks/{chunk-A5F2YNO6.js → chunk-2NNTE2ED.js} +245 -10
- package/chunks/{chunk-Z3JMO2CH.js → chunk-2SERYG4T.js} +1 -1
- package/chunks/{chunk-4J7OPYNS.js → chunk-2YDYDDE2.js} +6 -6
- package/chunks/{chunk-PXOJLJ5W.js → chunk-2YEZNBSD.js} +333 -184
- package/chunks/{chunk-UU4WC7DK.js → chunk-2ZV3CZKI.js} +82 -12
- package/chunks/{chunk-SE55HQGF.js → chunk-3B5DCAQU.js} +74 -52
- package/chunks/{chunk-UIRLQ3N7.js → chunk-3BV7TZNQ.js} +3 -3
- package/chunks/{chunk-2Z6LSQMF.js → chunk-3FSBMAYD.js} +1 -1
- package/chunks/{chunk-DJEHYM4H.js → chunk-3UZCLCXR.js} +3 -3
- package/chunks/{chunk-WWUSHZ7M.js → chunk-43C2II2G.js} +5 -5
- package/chunks/{chunk-2GXYDNXP.js → chunk-47SIHHPL.js} +8 -8
- package/chunks/{chunk-PHJJ3RVO.js → chunk-4DCP3362.js} +7 -15
- package/chunks/chunk-4K7NQDCG.js +104 -0
- package/chunks/{chunk-UZPYR3EV.js → chunk-4TPAG3O7.js} +1 -1
- package/chunks/{chunk-BEGIBJAZ.js → chunk-5CI4AXDD.js} +4 -4
- package/chunks/{chunk-7KOFLDEP.js → chunk-5JTIYALA.js} +1 -1
- package/chunks/{chunk-7HFULI45.js → chunk-5MK32KJV.js} +3 -3
- package/chunks/{chunk-CXJHQVEK.js → chunk-5PA6UEYA.js} +4 -0
- package/chunks/{chunk-IBJ5S45N.js → chunk-5T4LWWNX.js} +2 -2
- package/chunks/{chunk-VUMLT7E5.js → chunk-5Y2JCJAH.js} +2 -2
- package/chunks/{chunk-YZBDKFRQ.js → chunk-5ZYZPDDF.js} +993 -895
- package/chunks/{chunk-2A4C2MEG.js → chunk-62PXFOK4.js} +35 -12
- package/chunks/{chunk-IIWGSX4L.js → chunk-6E4WHQJV.js} +1 -1
- package/chunks/{chunk-6PCOVQO2.js → chunk-6HTMIKXZ.js} +8 -8
- package/chunks/{chunk-RDG44S5I.js → chunk-6KS24S3X.js} +2 -2
- package/chunks/{chunk-GAHYKJPV.js → chunk-6US7BF3G.js} +7 -59
- package/chunks/{chunk-MHG6NDS6.js → chunk-6YAR6ZU3.js} +2 -2
- package/chunks/{chunk-3CLIDIVQ.js → chunk-73WFGVIZ.js} +3 -3
- package/chunks/{chunk-ZZUVC6RI.js → chunk-76WGY6LW.js} +3 -3
- package/chunks/{chunk-XLDFW44M.js → chunk-77TOMRBG.js} +3 -3
- package/chunks/{chunk-PDL6LKB5.js → chunk-7AS7QX72.js} +1 -1
- package/chunks/{chunk-ND7NOI4P.js → chunk-7CWEZQ6T.js} +0 -15
- package/chunks/{chunk-DWCKACFL.js → chunk-7DPKPBOQ.js} +2 -2
- package/chunks/{chunk-45NQKMYB.js → chunk-7JPW6IYH.js} +1 -1
- package/chunks/{chunk-HDKCKCYO.js → chunk-7QGEJI7M.js} +1 -1
- package/chunks/{chunk-S4C4JJKE.js → chunk-A7X32SCT.js} +5 -5
- package/chunks/{chunk-O5Z7EB6Y.js → chunk-AYHQZBJ4.js} +170 -207
- package/chunks/{chunk-7DYNJFES.js → chunk-AYVIGUUK.js} +6 -1
- package/chunks/{chunk-7DMTAQJ6.js → chunk-BDHLBR46.js} +132 -49
- package/chunks/{chunk-43T5WDQ7.js → chunk-BFSFJR3D.js} +1 -1
- package/chunks/{chunk-AP3B7LKD.js → chunk-BKDAF7ES.js} +2 -2
- package/chunks/{chunk-B6UBOIFE.js → chunk-BQBUZDDH.js} +14 -11
- package/chunks/{chunk-VLRBJ24J.js → chunk-BVE5EMIG.js} +2 -2
- package/chunks/{chunk-P47E4SJC.js → chunk-BX2BZPFJ.js} +3 -3
- package/chunks/{chunk-OARZJFZX.js → chunk-C4WBKZJT.js} +4 -4
- package/chunks/{chunk-QKBYFU2Q.js → chunk-CFKIH3D3.js} +21 -1
- package/chunks/{chunk-URN2JIAQ.js → chunk-CITGRGCM.js} +2 -1
- package/chunks/{chunk-WU5E4HMO.js → chunk-CPPYZHBN.js} +1 -1
- package/chunks/chunk-DCSAVGDJ.js +20 -0
- package/chunks/{chunk-Q54XG7IX.js → chunk-DEYPMJPD.js} +1 -1
- package/chunks/{chunk-KSPRQSB4.js → chunk-DIMEPKCW.js} +52 -12
- package/chunks/{chunk-I432KXWD.js → chunk-DP7LABIB.js} +1 -1
- package/chunks/{chunk-36OF5PRW.js → chunk-E4I5MVBR.js} +7 -3
- package/chunks/{chunk-AW27A43Y.js → chunk-E55H6BZ7.js} +93 -1
- package/chunks/{chunk-K623ENWT.js → chunk-E6FGMDFQ.js} +4 -0
- package/chunks/{chunk-5XUTPXQU.js → chunk-EAV3TENS.js} +6 -9
- package/chunks/{chunk-LI4YHTQK.js → chunk-EB4VDXNI.js} +1 -1
- package/chunks/{chunk-JOLJTKIG.js → chunk-EC5BONC3.js} +1 -1
- package/chunks/{chunk-25NESM4G.js → chunk-EEQYTWGU.js} +29 -5
- package/chunks/{chunk-4CWDWDL6.js → chunk-EKP3M4RF.js} +1 -1
- package/chunks/{chunk-W4CRPSC5.js → chunk-ELY4QVIB.js} +1 -1
- package/chunks/{chunk-BB5IMQCV.js → chunk-EMGAVCBZ.js} +2 -2
- package/chunks/chunk-FBX2SDQ4.js +48 -0
- package/chunks/{chunk-C72BXMJ5.js → chunk-FJWICLG7.js} +1 -1
- package/chunks/{chunk-6FRJEE2S.js → chunk-FK4H3V6S.js} +5 -5
- package/chunks/{chunk-LDGWX737.js → chunk-FN5C6C7G.js} +160 -59
- package/chunks/{chunk-3ZFJUBTP.js → chunk-FPH6TXD3.js} +1 -1
- package/chunks/{chunk-WRT324N6.js → chunk-FVDQ5E67.js} +3 -3
- package/chunks/{chunk-VFACN2CE.js → chunk-GNMJNDZE.js} +1 -1
- package/chunks/{chunk-FVBVJEBG.js → chunk-GNRVKN76.js} +10 -8
- package/chunks/{chunk-PZRUV52H.js → chunk-GTUKW3I6.js} +20 -2
- package/chunks/chunk-GYTKQYDB.js +23 -0
- package/chunks/{chunk-VMJL7RH6.js → chunk-GZJUCMH4.js} +4 -4
- package/chunks/{chunk-MQP3MHWN.js → chunk-HJOWQUE2.js} +21 -15
- package/chunks/{chunk-ZS5BHEPD.js → chunk-I32QCIK7.js} +1 -1
- package/chunks/{chunk-7IV52LTO.js → chunk-I6VVOZDK.js} +2 -2
- package/chunks/{chunk-X7V3N6YH.js → chunk-I6YW3T3W.js} +218 -37
- package/chunks/{chunk-2E3V7G6Y.js → chunk-ICWGPK23.js} +55 -50
- package/chunks/{chunk-SQS55KR4.js → chunk-IJVDHPKD.js} +2 -2
- package/chunks/{chunk-QS4ENGVF.js → chunk-IKN3IUJP.js} +9 -8
- package/chunks/{chunk-2UZJWSVD.js → chunk-ILPXSKGQ.js} +2 -2
- package/chunks/{chunk-ZRYQMWEP.js → chunk-IPQA4SR5.js} +2 -2
- package/chunks/{chunk-XYQHT3AW.js → chunk-IRIX323G.js} +2 -2
- package/chunks/{chunk-5HJUPACR.js → chunk-J7MLXFC5.js} +2 -2
- package/chunks/{chunk-AZF6SME3.js → chunk-JECO75XD.js} +3 -3
- package/chunks/chunk-JLGFGPZJ.js +346 -0
- package/chunks/{chunk-WZDM44SB.js → chunk-JUIJ3FXC.js} +7 -7
- package/chunks/{chunk-A6NRNRKE.js → chunk-JVPFTDBK.js} +1 -1
- package/chunks/{chunk-2J3OJGTL.js → chunk-K2OJUPOE.js} +1 -21
- package/chunks/{chunk-GHY5OIYP.js → chunk-K63NK3KL.js} +13 -13
- package/chunks/{chunk-7JBHIQS2.js → chunk-KCOXDRQL.js} +7 -13
- package/chunks/{chunk-6NFAEG54.js → chunk-KOJ6MHD5.js} +24 -13
- package/chunks/{chunk-WS7PAXXR.js → chunk-KWFP3WV6.js} +18 -13
- package/chunks/{chunk-A5F63FEW.js → chunk-L436XFLJ.js} +1 -1
- package/chunks/{chunk-KIVGVFMM.js → chunk-LI2HEMKO.js} +16 -4
- package/chunks/{chunk-GIWB5QLV.js → chunk-LJP2BBMK.js} +4 -4
- package/chunks/{create-sub-session-XBCVGNFU.js → chunk-LRKMQPMD.js} +4 -6
- package/chunks/{chunk-6UQSU7CQ.js → chunk-MDZO5V2O.js} +58 -107
- package/chunks/{chunk-AO4M6NMD.js → chunk-MW5AHWOZ.js} +60 -20
- package/chunks/{chunk-FYZMB6DB.js → chunk-MYLXL7F6.js} +11 -11
- package/chunks/{chunk-ZLCT4C5A.js → chunk-MZS7GEC7.js} +1 -1
- package/chunks/{chunk-VEND4KA4.js → chunk-NER3H7PI.js} +1 -1
- package/chunks/{chunk-AVCCKIZ6.js → chunk-NVK4HJYQ.js} +1 -1
- package/chunks/{chunk-MPHLIJYL.js → chunk-NY3IJYAV.js} +14 -8
- package/chunks/{chunk-XZJKSETB.js → chunk-O3BUXIPM.js} +3 -3
- package/chunks/{chunk-4XPSVIED.js → chunk-O5YGAEQS.js} +6 -6
- package/chunks/{chunk-NW35NVFN.js → chunk-ODXCSIH5.js} +4 -4
- package/chunks/{chunk-5XHAOUWD.js → chunk-OI2DR6QB.js} +3 -3
- package/chunks/{chunk-BUGYW6FB.js → chunk-OQ6LTSX3.js} +1 -1
- package/chunks/{chunk-J5ZDDUKM.js → chunk-OT26ITEY.js} +4 -4
- package/chunks/{chunk-EFB657PR.js → chunk-OX44MOAN.js} +3 -3
- package/chunks/{chunk-LURJYO2T.js → chunk-OZ6KS6KW.js} +4 -0
- package/chunks/{chunk-4F5WV4RF.js → chunk-PAJGKZAA.js} +281 -10
- package/chunks/{chunk-HIK2OF33.js → chunk-PVBT5QPD.js} +1 -1
- package/chunks/chunk-QHMLYMMS.js +32 -0
- package/chunks/{chunk-U2UYQMM6.js → chunk-R2ZJH3FV.js} +3 -3
- package/chunks/{chunk-K52PZNU4.js → chunk-RRKNX553.js} +2 -2
- package/chunks/chunk-RXFQM6FQ.js +42 -0
- package/chunks/{chunk-SJ4HB27T.js → chunk-SDVF6A42.js} +3 -3
- package/chunks/{chunk-TBVSALA3.js → chunk-SKNVVYIJ.js} +3 -3
- package/chunks/{chunk-JGUBDRBC.js → chunk-SLEWBQWM.js} +3 -3
- package/chunks/{chunk-ZRFUT5VV.js → chunk-SM7ZVKTF.js} +7 -7
- package/chunks/{chunk-UUQFJILB.js → chunk-SQPOJ4ZI.js} +15 -3
- package/chunks/{chunk-RPJQ3O4M.js → chunk-SRGENTPF.js} +31 -41
- package/chunks/{chunk-ISJMN3ML.js → chunk-T2CRBIDJ.js} +1 -1
- package/chunks/{chunk-MZKWFWVG.js → chunk-T2HMXHYA.js} +6 -6
- package/chunks/{chunk-FEMQ6Y7W.js → chunk-T6OODF2U.js} +47 -126
- package/chunks/{chunk-VYC7XFYV.js → chunk-TKO4TLT6.js} +5 -5
- package/chunks/{chunk-KVGR4MCF.js → chunk-TOF4UZHH.js} +3 -3
- package/chunks/{chunk-LD5VIJ7S.js → chunk-TWSKM647.js} +1 -1
- package/chunks/{chunk-7NBVNAJJ.js → chunk-UCSV2IZW.js} +3 -3
- package/chunks/{chunk-FDD2IUEL.js → chunk-UX3IFLJM.js} +229 -21
- package/chunks/{chunk-YDJRMQU4.js → chunk-V3GINY6K.js} +3 -3
- package/chunks/{chunk-XL5K4SVK.js → chunk-VL4YX3FH.js} +1 -1
- package/chunks/{chunk-62JOGZL5.js → chunk-VMDURMFY.js} +199 -87
- package/chunks/{chunk-OE52YHCZ.js → chunk-W2WRNJKX.js} +11 -11
- package/chunks/{chunk-YLFLHKDL.js → chunk-W3N5XAZ6.js} +1 -1
- package/chunks/{chunk-IWOWEENB.js → chunk-WBT3STGU.js} +385 -25
- package/chunks/{chunk-S3G6YFQC.js → chunk-WEGXPP5E.js} +1 -1
- package/chunks/{chunk-RDQ7QB4Y.js → chunk-XJS54K4A.js} +2 -2
- package/chunks/{chunk-L4HVF7LM.js → chunk-XNXWEGKB.js} +3 -3
- package/chunks/{chunk-T6XLJRQY.js → chunk-XYX474JQ.js} +36509 -5182
- package/chunks/{chunk-F6WFNA7U.js → chunk-XZA32HII.js} +3 -6
- package/chunks/{chunk-NUGZAFR2.js → chunk-ZEADBZLO.js} +147 -6
- package/chunks/chunk-ZELCTN6Y.js +29 -0
- package/chunks/{chunk-TQOF5KBL.js → chunk-ZEZKIS2K.js} +0 -31
- package/chunks/{chunk-IOSEW6KP.js → chunk-ZJG323IA.js} +5 -4
- package/chunks/{chunk-VSNPOSDN.js → chunk-ZKAZP2ZG.js} +107 -12
- package/chunks/{chunk-YMVFIYHV.js → chunk-ZLTEQYNC.js} +2 -2
- package/chunks/{chunk-O5BDEWBC.js → chunk-ZWKGZB2K.js} +3 -3
- package/chunks/{chunk-6QSA4JHL.js → chunk-ZXDM7DYV.js} +2772 -814
- package/chunks/chunk-ZYNTSXWK.js +32 -0
- package/chunks/config-utils-7M6PCTLT.js +113 -0
- package/chunks/contextCommand-G4QG3TW6.js +108 -0
- package/chunks/{core-runtime-CES6JSVV.js → core-runtime-PKNQ63VL.js} +63 -58
- package/chunks/{create-sub-session-UJTPMVOG.js → create-sub-session-PLGPY6TV.js} +60 -58
- package/chunks/create-sub-session-RVHSWVAP.js +17 -0
- package/chunks/{cron-create-IKA56DAF.js → cron-create-IJGVR5R2.js} +4 -4
- package/chunks/{cron-delete-K5Q62EGH.js → cron-delete-4N5BI6GL.js} +4 -4
- package/chunks/{cron-list-QBFGAMP7.js → cron-list-2CATIPUX.js} +4 -4
- package/chunks/{daemon-RZZUPGOJ.js → daemon-NAYK4XXU.js} +51 -24
- package/chunks/{daemon-git-worktree-guard-3QY2BQYB.js → daemon-git-worktree-guard-LDBJXH2U.js} +338 -92
- package/chunks/daemon-status-provider-F5FEHVVG.js +118 -0
- package/chunks/daemon-trust-policy-C6YTU5CQ.js +114 -0
- package/chunks/{daemon-trust-policy-monitor-TK4K7M63.js → daemon-trust-policy-monitor-IGEJPHQ4.js} +68 -66
- package/chunks/{de-RYUHH2C6.js → de-X6HLSIFE.js} +1 -0
- package/chunks/deferred-core-runtime-GHT3GDOR.js +116 -0
- package/chunks/{display-image-OEJMJV3S.js → display-image-DR55LL6M.js} +5 -5
- package/chunks/dist-4Q7NTUNB.js +2512 -0
- package/chunks/{dist-ESS34DHC.js → dist-6H6RZ5H6.js} +2 -2
- package/chunks/{dist-LZO24N3E.js → dist-7CKN54NL.js} +1 -1
- package/chunks/{dist-5EV2G6MC.js → dist-DJBNNPLN.js} +1 -1
- package/chunks/{dist-J6P3C52Z.js → dist-FVJZSIO4.js} +28 -7
- package/chunks/{dist-K7IQB53U.js → dist-SATKXKUR.js} +1 -1
- package/chunks/{dist-ES6HNUW2.js → dist-TJUDJTCB.js} +246 -17
- package/chunks/{dist-VVQBOKDH.js → dist-UQUFZDIY.js} +1 -1
- package/chunks/{dist-2OG3PGKO.js → dist-ZBVOXSKF.js} +3 -3
- package/chunks/earlyInputCapture-HOSJTLWP.js +109 -0
- package/chunks/{edit-A2633SLR.js → edit-KSPVUEAS.js} +48 -48
- package/chunks/{en-3RHLPITS.js → en-6MDBWMTG.js} +3 -0
- package/chunks/{enter-worktree-OIAHE2TB.js → enter-worktree-UOZ6ZTP7.js} +7 -8
- package/chunks/{enterPlanMode-SUGIKLR7.js → enterPlanMode-DZTABSKN.js} +47 -47
- package/chunks/environment-JXOSW25V.js +131 -0
- package/chunks/errors-IOXFDE4J.js +115 -0
- package/chunks/{exit-worktree-3UT3SSWT.js → exit-worktree-G2QATUCV.js} +7 -8
- package/chunks/exitPlanMode-PZG4FXRB.js +85 -0
- package/chunks/{fast-path-3AVP3G35.js → fast-path-EBS7NAVL.js} +28 -7
- package/chunks/{fast-path-settings-WHX3J3ZI.js → fast-path-settings-XMFBYFUH.js} +2 -2
- package/chunks/{fr-4PL5GHG4.js → fr-FTZWF462.js} +1 -0
- package/chunks/{gemini-7PVQWHTH.js → gemini-JELEKOVS.js} +129 -123
- package/chunks/{geminiContentGenerator-B2FOJJDJ.js → geminiContentGenerator-I2CKP7XI.js} +16 -13
- package/chunks/{glob-7YGXE6OV.js → glob-TDVEVPQZ.js} +47 -47
- package/chunks/{goal-tools-TLJCE7YZ.js → goal-tools-CNVXMSZD.js} +72 -28
- package/chunks/{grep-6DV6LTON.js → grep-3NLSS32D.js} +6 -6
- package/chunks/handleAutoUpdate-AWAGHKOX.js +111 -0
- package/chunks/i18n-CYA25C5F.js +126 -0
- package/chunks/{image-gen-7CSCJ73T.js → image-gen-63NN2H5N.js} +9 -11
- package/chunks/initializer-JD2FLNLO.js +115 -0
- package/chunks/installationInfo-N3DCWVWR.js +109 -0
- package/chunks/{ja-HZ7X7PQO.js → ja-2GL5FKYJ.js} +1 -0
- package/chunks/{keychain-token-storage-MTFTAESK.js → keychain-token-storage-3MGFRYGM.js} +2 -2
- package/chunks/list-XDQAUET5.js +118 -0
- package/chunks/{list-agents-43XUEXJV.js → list-agents-EXRSHIDJ.js} +2 -2
- package/chunks/loadedSettingsAdapter-IK7H5JRK.js +112 -0
- package/chunks/{loggingContentGenerator-RNE66CKK.js → loggingContentGenerator-CZWUAHAI.js} +27 -30
- package/chunks/{loop-wakeup-E54KDUXC.js → loop-wakeup-XBPB2BRO.js} +5 -5
- package/chunks/{ls-CGL2UC3H.js → ls-WFONAND2.js} +4 -4
- package/chunks/{lsp-5IKUO5DX.js → lsp-DUKPDUXN.js} +2 -2
- package/chunks/{managed-npm-update-Y3SC3GLJ.js → managed-npm-update-54W23SP5.js} +61 -59
- package/chunks/mcp-2E7ZLMEE.js +112 -0
- package/chunks/{monitor-PXYSGSUN.js → monitor-A4J5QRGJ.js} +47 -47
- package/chunks/nonInteractiveCli-ZNDXB62Y.js +185 -0
- package/chunks/{notebook-edit-ISIBJVBR.js → notebook-edit-4ANFZON5.js} +48 -48
- package/chunks/open-with-auth-4UI3KHUR.js +55 -0
- package/chunks/{openaiContentGenerator-6TBOPEGT.js → openaiContentGenerator-JCCJJQZC.js} +29 -30
- package/chunks/pidfile-DHV2Y7UD.js +113 -0
- package/chunks/{processUtils-YK2TDTTU.js → processUtils-JJAR56SO.js} +2 -2
- package/chunks/prompt-terminal-ledger-LDZ6QVYA.js +107 -0
- package/chunks/{pt-QT5N2Q6Q.js → pt-XN2YWJVM.js} +1 -0
- package/chunks/{qwenContentGenerator-CLDMA2Y4.js → qwenContentGenerator-5JM44ZSA.js} +53 -59
- package/chunks/{qwenOAuth2-DLDR6UC5.js → qwenOAuth2-JIYAWXTW.js} +8 -10
- package/chunks/{read-file-2HOD2ATO.js → read-file-N3E5DY7N.js} +13 -14
- package/chunks/{read-mcp-resource-XYES2B42.js → read-mcp-resource-7A7NFSFL.js} +2 -2
- package/chunks/read-package-up-6T6ICKR7.js +13 -0
- package/chunks/{record-artifact-W3IBTGL7.js → record-artifact-CPJ4IJSD.js} +4 -5
- package/chunks/report-findings-VFM5DENC.js +33 -0
- package/chunks/request-shutdown-AXVOFN5C.js +133 -0
- package/chunks/resumeHistoryUtils-YQRITQAG.js +120 -0
- package/chunks/ripGrep-NEIHKBKB.js +39 -0
- package/chunks/{ru-STMG5BPD.js → ru-OLTMFJEW.js} +1 -0
- package/chunks/{run-qwen-serve-XJHOW2NY.js → run-qwen-serve-IWGPZADI.js} +622 -79
- package/chunks/{runtime-J4SPTJRQ.js → runtime-I76HPFUE.js} +73 -71
- package/chunks/{scheduler-VRAEZZ4E.js → scheduler-M6YL4K4I.js} +62 -60
- package/chunks/{sdk-exporters-http-RSIOP3G2.js → sdk-exporters-http-XXSKBD2C.js} +5 -5
- package/chunks/{sdk-impl-CB3KARSK.js → sdk-impl-VPNBLV7I.js} +7 -7
- package/chunks/{send-message-J4VT46OI.js → send-message-A2GXDX3B.js} +10 -31
- package/chunks/serve-XY5S63GN.js +120 -0
- package/chunks/{server-74ONDK62.js → server-TWXRRREO.js} +965 -405
- package/chunks/{session-BO6VBWJP.js → session-IT5ZXU7A.js} +151 -140
- package/chunks/{settings-35QZNFDG.js → settings-IX5HOOCG.js} +71 -69
- package/chunks/shell-LZ55AAJB.js +95 -0
- package/chunks/{skill-DKEMQSNJ.js → skill-WSZ53D2R.js} +108 -25
- package/chunks/skill-settings-5U7FTJIK.js +120 -0
- package/chunks/spawnChannel-TMC6VXGN.js +113 -0
- package/chunks/standalone-update-CUYGWTR4.js +120 -0
- package/chunks/{startInteractiveUI-J2QSGWPU.js → startInteractiveUI-O6BI2OSA.js} +381 -293
- package/chunks/{syntheticOutput-JAXMIMZP.js → syntheticOutput-5AJ444QT.js} +3 -3
- package/chunks/{task-create-I2H322E4.js → task-create-CDJSOEQD.js} +11 -11
- package/chunks/{task-list-3OLIWFTQ.js → task-list-BELMPA75.js} +5 -5
- package/chunks/{task-stop-JAUY6MSY.js → task-stop-U3S3KZG2.js} +2 -2
- package/chunks/{task-update-B3XO4CPI.js → task-update-77VCFDDZ.js} +11 -11
- package/chunks/{team-create-W534PMGX.js → team-create-UF4TMQEH.js} +48 -48
- package/chunks/{team-delete-Q7GE7RRI.js → team-delete-YWFXX77L.js} +5 -5
- package/chunks/{team-plan-approval-WNV6P6NG.js → team-plan-approval-U57NSR6C.js} +47 -47
- package/chunks/terminal-image-renderer-DRL3BROJ.js +116 -0
- package/chunks/theme-manager-HHJPUDRN.js +104 -0
- package/chunks/{todoWrite-FJJTY2TI.js → todoWrite-435EO2CS.js} +4 -4
- package/chunks/{tool-search-Y4KL3LRE.js → tool-search-SV35UV72.js} +18 -19
- package/chunks/total-session-admission-TQI7TCTL.js +114 -0
- package/chunks/trustedFolders-YKK67IP3.js +124 -0
- package/chunks/{update-relaunch-OHVFN6KF.js → update-relaunch-DX7LVA4P.js} +6 -6
- package/chunks/updateCheck-6JRTKTUF.js +120 -0
- package/chunks/useAutoAcceptIndicator-MYXYSKSL.js +122 -0
- package/chunks/{validateNonInterActiveAuth-WJXH426F.js → validateNonInterActiveAuth-B26O4YJP.js} +113 -106
- package/chunks/{version-QMDRADXM.js → version-K5D7VJ4B.js} +2 -2
- package/chunks/{web-fetch-ROS6P4LP.js → web-fetch-VFHZLLNZ.js} +25 -242
- package/chunks/{web-search-JS3E76O6.js → web-search-AQE5A4J5.js} +11 -11
- package/chunks/{web-shell-static-3NUTRHAH.js → web-shell-static-A6QMUNNV.js} +11 -4
- package/chunks/webapi-Z5OM224P.js +4118 -0
- package/chunks/{workflow-2FCMBTBZ.js → workflow-XL6AEUZ7.js} +635 -94
- package/chunks/workspace-providers-status-H6TG34YV.js +116 -0
- package/chunks/{workspace-registration-store-SU4EJKSD.js → workspace-registration-store-I4U3V5LL.js} +1 -1
- package/chunks/workspace-registry-2PWNIYNI.js +123 -0
- package/chunks/workspace-service-4FGTUJLA.js +131 -0
- package/chunks/workspace-skills-status-7VOLUDT6.js +115 -0
- package/chunks/{workspace-trust-reconciler-4Y4F7XIX.js → workspace-trust-reconciler-GJ466KCE.js} +74 -73
- package/chunks/write-file-PWOYCT2K.js +90 -0
- package/chunks/{zh-TW-NX43Z2S2.js → zh-TW-MV4FWFB6.js} +3 -0
- package/chunks/{zh-3JQ75KFU.js → zh-X3WGU6SI.js} +3 -0
- package/chunks/{zoom-image-DNBKCGGF.js → zoom-image-NYJPC3NI.js} +13 -14
- package/cli.js +15 -15
- package/locales/ca.js +3 -0
- package/locales/de.js +1 -0
- package/locales/en.js +3 -0
- package/locales/fr.js +1 -0
- package/locales/ja.js +1 -0
- package/locales/pt.js +1 -0
- package/locales/ru.js +1 -0
- package/locales/zh-TW.js +3 -0
- package/locales/zh.js +3 -0
- package/package.json +3 -3
- package/web-shell/assets/{abnfDiagram-VCTEODGH-DWHXEVlf.js → abnfDiagram-VCTEODGH-yq7z7Anb.js} +1 -1
- package/web-shell/assets/{arc-CXKjm86V.js → arc-CbJO0xnT.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-B_ynI0cX.js → architectureDiagram-5GKGNRK7-CRh89421.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-DMebd9X0.js → blockDiagram-NRAW4CY4-C75KAhKv.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-BZ5BlxS-.js → c4Diagram-UCG6FXSJ-BzlMveFB.js} +1 -1
- package/web-shell/assets/channel-B3sGR79J.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-CluJKopE.js → chunk-2Q5K7J3B-DA8QDX3a.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-hzDAPFOo.js → chunk-5VM5RSS4-Bgu7gQ7Y.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-6vHioKJe.js → chunk-F27PBJKO-BOew7pIK.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-B_5hKTGo.js → chunk-G27WJ6UU-DHx1I-hO.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-CO9VoFCH.js → chunk-JWPE2WC7-SarFW0WU.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-7L5JpxYu.js → chunk-LCL6LL3I-BLzP083Z.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-DHLJMAqj.js → chunk-POPQ4Y6H-Bmkv_iKm.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-Dt-4Cqdl.js → chunk-SVP7TREG-MPx9r1N2.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-QlSQ3ssG.js → chunk-XXDRQBXY-Ck-09rKG.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-sTGo0K3v.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-sTGo0K3v.js +1 -0
- package/web-shell/assets/{cose-bilkent-JH36ORCC-DMw3EOxl.js → cose-bilkent-JH36ORCC-DWm6lfOG.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-s6vEA7RQ.js → cynefin-OW5HDTMX-DcBUyr5R.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-AOKsvYLt.js → cynefinDiagram-5FMLGOSQ-Df8qmd_p.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-9QAZn3m7.js → dagre-3AP2YEHR-DDmGspD7.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-CWpnu4FN.js → diagram-S7CK7UJ4-BK_qFvbi.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-9l0jXD8q.js → diagram-UQ7AKVKN-Uw3AP_bi.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-BMUHroj4.js → diagram-VSXAHHWV-CJOQKxY7.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-Co9x27vm.js → diagram-VX7I27RA-DhdvZna5.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-BKnTeOER.js → diagram-Z3DM3KII-edQU0nlP.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-QBZD9CKG.js → ebnfDiagram-PWID7BFC-4kugBEsO.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-dKWAEGun.js → erDiagram-SSCWMZ5O-BMkFivWO.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-CR_UgVqj.js → flowDiagram-A5DVABFB-BM1ea8g-.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-DQUnjWO6.js → ganttDiagram-EL5Y4UJY-CXj_cKRf.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-C4j59wPL.js → gitGraphDiagram-WWUBYQGX-D0nEqwqu.js} +1 -1
- package/web-shell/assets/{index-tYXRIPz4.js → index-B6JN54Pd.js} +1 -1
- package/web-shell/assets/{index-BN_m_uHJ.css → index-C-XlQn24.css} +1 -1
- package/web-shell/assets/index-DLjXM0dn.js +1860 -0
- package/web-shell/assets/{infoDiagram-RXCK75RN-mzqbt50w.js → infoDiagram-RXCK75RN-DF7aGGbQ.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-ChLOqhGl.js → ishikawaDiagram-5VMMS53U-CZYNX1lL.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-SifZE-R8.js → journeyDiagram-EYS64GPL-CvrqMUz1.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-Sft2qlbc.js → kanban-definition-3QL26DDD-BZNJQZBj.js} +1 -1
- package/web-shell/assets/{layout-O2uHVkPd.js → layout-Bf83x7D6.js} +1 -1
- package/web-shell/assets/{linear-BVqYgjSc.js → linear-Bkc3ES2f.js} +1 -1
- package/web-shell/assets/{mermaid.core-CZ9MQaJ6.js → mermaid.core-C6xuovwz.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-BNQYjBqM.js → mindmap-definition-FBJOCRG2-DzH6gVRg.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-rh1J8uv6.js → pegDiagram-XKGWAZYB-DCvLh2fa.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-BQHR5mn9.js → pieDiagram-E7YTZNPT-BtjVlx_6.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-CLCbP7mK.js → quadrantDiagram-AXDQQJYC-IbroqxFe.js} +1 -1
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-CDQhrkbm.js → railroadDiagram-O6MQD6OU-BvMykiWW.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-BdP9uswg.js → requirementDiagram-EFPCY7ZU-D-HHMyrh.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-CFZDFBXF.js → sankeyDiagram-P5KCCOFB-C0XXhB6d.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-BW9WOJXI.js → sequenceDiagram-WJ2MYXX4-DseAXj5d.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-CPMia32z.js → sizeCapture-X5ZJPWSS-Cek2EweK.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-BANp9p7F.js → stateDiagram-HBIQ2CUA-yLv8wafW.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DeThXnol.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-JroXksK-.js → swimlanes-XN3QIQJK-Cwz-opvE.js} +1 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-GW0R1ZSv.js +8 -0
- package/web-shell/assets/{timeline-definition-24CTP7MA-DfuVIfYY.js → timeline-definition-24CTP7MA-BJuFD7OG.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-BZXoSjRB.js → vennDiagram-4TSXK5OY-CNAavdoV.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-BdiY8avC.js → wardleyDiagram-VM6X3IG4-DaIjAidq.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-DcXh_U4H.js → xychartDiagram-S5SC5T6Z-DkcQXjTy.js} +1 -1
- package/web-shell/index.html +19 -4
- package/chunks/MaxSizedBox-3OZJCC3J.js +0 -110
- package/chunks/agent-BFE3DQM3.js +0 -93
- package/chunks/agent-headless-LLVKZZ4P.js +0 -87
- package/chunks/bridge-EBYO4SYM.js +0 -118
- package/chunks/channel-settings-store-5VP2Y2YM.js +0 -115
- package/chunks/chunk-AXMWHKXA.js +0 -42
- package/chunks/chunk-IO257NUD.js +0 -623
- package/chunks/chunk-YHC2EYYG.js +0 -125
- package/chunks/computer-use-EGPWFEX6.js +0 -2142
- package/chunks/config-utils-WZ43VOBS.js +0 -25
- package/chunks/contextCommand-5DSEQI6S.js +0 -106
- package/chunks/daemon-status-provider-EYMLPYJU.js +0 -116
- package/chunks/daemon-trust-policy-CQYKZ7VO.js +0 -112
- package/chunks/deferred-core-runtime-WFEPUXZR.js +0 -114
- package/chunks/earlyInputCapture-PN4PP7V5.js +0 -107
- package/chunks/environment-WUPHLPKZ.js +0 -127
- package/chunks/errors-WPMPVIAT.js +0 -113
- package/chunks/exitPlanMode-MLFHYZNB.js +0 -85
- package/chunks/handleAutoUpdate-F5OTWUT5.js +0 -109
- package/chunks/i18n-C562S6KN.js +0 -124
- package/chunks/initializer-7YPGOFP4.js +0 -113
- package/chunks/installationInfo-ARU5Q2H7.js +0 -107
- package/chunks/list-KTSK275C.js +0 -116
- package/chunks/loadedSettingsAdapter-F3T2EQ5J.js +0 -110
- package/chunks/mcp-6ONTVPAY.js +0 -110
- package/chunks/nonInteractiveCli-KZDWFAN6.js +0 -178
- package/chunks/pidfile-IO7ALSZF.js +0 -111
- package/chunks/prompt-terminal-ledger-TCE7PMCE.js +0 -105
- package/chunks/resumeHistoryUtils-DDSBAQJS.js +0 -118
- package/chunks/ripGrep-E7P6K4QR.js +0 -40
- package/chunks/serve-KEAWV4TI.js +0 -118
- package/chunks/shell-H6K63WG3.js +0 -95
- package/chunks/skill-settings-TCKLXIXM.js +0 -118
- package/chunks/spawnChannel-2K6NKWM5.js +0 -111
- package/chunks/standalone-update-LSCGOEFP.js +0 -118
- package/chunks/terminal-image-renderer-UHX3UD66.js +0 -114
- package/chunks/theme-manager-6B47ZPIF.js +0 -102
- package/chunks/total-session-admission-NSCFWGJH.js +0 -113
- package/chunks/trustedFolders-7XMJWGQ3.js +0 -122
- package/chunks/updateCheck-EOVLHD4T.js +0 -118
- package/chunks/useAutoAcceptIndicator-ZNMIGBTN.js +0 -120
- package/chunks/workspace-providers-status-GPGU5YMT.js +0 -113
- package/chunks/workspace-registry-BQISXT6Y.js +0 -122
- package/chunks/workspace-service-LLY6HCUC.js +0 -129
- package/chunks/workspace-skills-status-L5N2Y3ZP.js +0 -113
- package/chunks/write-file-EJHU2Z3E.js +0 -90
- package/web-shell/assets/channel-Zg3WHgq_.js +0 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-C16l9jQz.js +0 -1
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-C16l9jQz.js +0 -1
- package/web-shell/assets/index-DrlJu79f.js +0 -1792
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-NZYAoQLU.js +0 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-3YdVX3vj.js +0 -8
|
@@ -656,8 +656,14 @@ var IDE_DIR_NAME = "ide";
|
|
|
656
656
|
var PLANS_DIR_NAME = "plans";
|
|
657
657
|
var DEBUG_DIR_NAME = "debug";
|
|
658
658
|
var ARENA_DIR_NAME = "arena";
|
|
659
|
+
function platformFoldsCase() {
|
|
660
|
+
return process.platform === "win32" || process.platform === "darwin";
|
|
661
|
+
}
|
|
662
|
+
__name(platformFoldsCase, "platformFoldsCase");
|
|
659
663
|
function isResolvedPathWithinDirectory(childPath, parentPath) {
|
|
660
|
-
const
|
|
664
|
+
const child = platformFoldsCase() ? childPath.toLowerCase() : childPath;
|
|
665
|
+
const parent = platformFoldsCase() ? parentPath.toLowerCase() : parentPath;
|
|
666
|
+
const relativePath = path2.relative(parent, child);
|
|
661
667
|
return relativePath === "" || !relativePath.startsWith(`..${path2.sep}`) && relativePath !== ".." && !path2.isAbsolute(relativePath);
|
|
662
668
|
}
|
|
663
669
|
__name(isResolvedPathWithinDirectory, "isResolvedPathWithinDirectory");
|
|
@@ -879,6 +885,170 @@ var Storage = class _Storage {
|
|
|
879
885
|
static getGlobalArenaDir() {
|
|
880
886
|
return path2.join(_Storage.getGlobalQwenDir(), ARENA_DIR_NAME);
|
|
881
887
|
}
|
|
888
|
+
/**
|
|
889
|
+
* Create or adopt the outside-repo landing for /audit reports and sidecars
|
|
890
|
+
* when the audited repository's ignore state cannot keep them out of
|
|
891
|
+
* version control. Per-user and per-project, honoring the QWEN_HOME
|
|
892
|
+
* override; 0700 on POSIX so the quoted (possibly exploitable) module
|
|
893
|
+
* content stays private to the user.
|
|
894
|
+
*/
|
|
895
|
+
static ensureAuditFallbackDir(projectRoot) {
|
|
896
|
+
let resolved = projectRoot;
|
|
897
|
+
try {
|
|
898
|
+
resolved = fs2.realpathSync(projectRoot);
|
|
899
|
+
} catch {
|
|
900
|
+
}
|
|
901
|
+
if (platformFoldsCase()) {
|
|
902
|
+
resolved = resolved.toLowerCase();
|
|
903
|
+
}
|
|
904
|
+
const baseDir = _Storage.getGlobalQwenDir();
|
|
905
|
+
const dir = path2.join(baseDir, "audits", getProjectHash(resolved));
|
|
906
|
+
_Storage.assertAuditLandingIsOutsideRepo(dir, resolved);
|
|
907
|
+
try {
|
|
908
|
+
fs2.mkdirSync(baseDir, { recursive: true });
|
|
909
|
+
} catch (err) {
|
|
910
|
+
throw new FatalConfigError(
|
|
911
|
+
`audit: the QWEN_HOME base ${baseDir} could not be created as a directory (${err.message}) \u2014 remove what stands at that path and re-run.`
|
|
912
|
+
);
|
|
913
|
+
}
|
|
914
|
+
_Storage.assertAuditLandingIsOutsideRepo(dir, resolved);
|
|
915
|
+
const auditsDir = _Storage.adoptDirectory(
|
|
916
|
+
path2.join(baseDir, "audits"),
|
|
917
|
+
"the audit artifact directory"
|
|
918
|
+
);
|
|
919
|
+
_Storage.adoptDirectory(dir, "the fallback landing");
|
|
920
|
+
_Storage.assertAuditLandingIsClean(dir);
|
|
921
|
+
_Storage.adoptDirectory(auditsDir, "the audit artifact directory");
|
|
922
|
+
_Storage.adoptDirectory(dir, "the fallback landing");
|
|
923
|
+
_Storage.assertAuditLandingIsClean(dir);
|
|
924
|
+
_Storage.assertAuditLandingIsOutsideRepo(dir, resolved, true);
|
|
925
|
+
_Storage.adoptDirectory(auditsDir, "the audit artifact directory");
|
|
926
|
+
_Storage.adoptDirectory(dir, "the fallback landing");
|
|
927
|
+
return dir;
|
|
928
|
+
}
|
|
929
|
+
/**
|
|
930
|
+
* Create one path component and return it only if what is there now is a
|
|
931
|
+
* real directory (not a symlink). On POSIX a pre-existing component is
|
|
932
|
+
* tightened to 0700; ownership itself is not checked.
|
|
933
|
+
*
|
|
934
|
+
* Non-recursive on purpose: `recursive: true` would silently walk (and
|
|
935
|
+
* follow) anything already standing in the path. Creating exactly one
|
|
936
|
+
* component at a time is what makes each component checkable.
|
|
937
|
+
*/
|
|
938
|
+
static adoptDirectory(dir, what) {
|
|
939
|
+
try {
|
|
940
|
+
fs2.mkdirSync(dir, { mode: 448 });
|
|
941
|
+
} catch (err) {
|
|
942
|
+
if (err.code !== "EEXIST") throw err;
|
|
943
|
+
}
|
|
944
|
+
const stat = fs2.lstatSync(dir);
|
|
945
|
+
if (!stat.isDirectory()) {
|
|
946
|
+
throw new FatalConfigError(
|
|
947
|
+
`audit: ${what} ${dir} is not a directory (it may be a symlink planted ahead of the run) \u2014 remove it and re-run.`
|
|
948
|
+
);
|
|
949
|
+
}
|
|
950
|
+
if (process.platform !== "win32" && (stat.mode & 511) !== 448) {
|
|
951
|
+
fs2.chmodSync(dir, 448);
|
|
952
|
+
}
|
|
953
|
+
return dir;
|
|
954
|
+
}
|
|
955
|
+
/**
|
|
956
|
+
* Refuse a fallback landing whose CONTENTS would redirect writes out of it.
|
|
957
|
+
*
|
|
958
|
+
* Validating the leaf alone is not enough: artifacts land at paths BELOW it
|
|
959
|
+
* (`audit-<ts>.sidecar/sidecar.json`, the dated report), and an
|
|
960
|
+
* O_NOFOLLOW open only ever guards the final component. A planted symlink
|
|
961
|
+
* child is therefore a complete escape — `mkdirSync` happily treats a
|
|
962
|
+
* symlink-to-directory as the directory, and every artifact written
|
|
963
|
+
* "inside" the landing lands wherever the link points, while the leaf
|
|
964
|
+
* itself stays a perfectly valid directory that re-validation passes.
|
|
965
|
+
* A hardlinked regular file is the same story for reads: an existing name
|
|
966
|
+
* reopened with O_TRUNC writes into the planter's inode.
|
|
967
|
+
*
|
|
968
|
+
* Directory children are validated recursively: a planted real
|
|
969
|
+
* subdirectory holding a symlinked file is the same escape. Entries that
|
|
970
|
+
* are neither regular files nor directories (a FIFO, socket, or device)
|
|
971
|
+
* are refused outright: opening one for the report would block, or stream
|
|
972
|
+
* the content to whoever holds the other end.
|
|
973
|
+
*
|
|
974
|
+
* The landing is REUSED across runs (the report and its sidecar are the
|
|
975
|
+
* durable artifacts), so this cannot refuse a non-empty landing — only
|
|
976
|
+
* entries that are not what a previous run of this tool would have left.
|
|
977
|
+
*/
|
|
978
|
+
static assertAuditLandingIsClean(dir) {
|
|
979
|
+
let entries;
|
|
980
|
+
try {
|
|
981
|
+
entries = fs2.readdirSync(dir, { withFileTypes: true });
|
|
982
|
+
} catch (err) {
|
|
983
|
+
throw new FatalConfigError(
|
|
984
|
+
`audit: the fallback landing ${dir} could not be listed for validation (${err.message}) \u2014 remove it and re-run.`
|
|
985
|
+
);
|
|
986
|
+
}
|
|
987
|
+
for (const entry of entries) {
|
|
988
|
+
let stat;
|
|
989
|
+
try {
|
|
990
|
+
stat = fs2.lstatSync(path2.join(dir, entry.name));
|
|
991
|
+
} catch {
|
|
992
|
+
continue;
|
|
993
|
+
}
|
|
994
|
+
if (stat.isSymbolicLink()) {
|
|
995
|
+
throw new FatalConfigError(
|
|
996
|
+
`audit: the fallback landing ${dir} contains a symlink (${entry.name}) \u2014 artifacts written under it would land outside the landing. Remove it and re-run.`
|
|
997
|
+
);
|
|
998
|
+
}
|
|
999
|
+
if (stat.isDirectory()) {
|
|
1000
|
+
_Storage.assertAuditLandingIsClean(path2.join(dir, entry.name));
|
|
1001
|
+
let childStat;
|
|
1002
|
+
try {
|
|
1003
|
+
childStat = fs2.lstatSync(path2.join(dir, entry.name));
|
|
1004
|
+
} catch {
|
|
1005
|
+
continue;
|
|
1006
|
+
}
|
|
1007
|
+
if (!childStat.isDirectory()) {
|
|
1008
|
+
throw new FatalConfigError(
|
|
1009
|
+
`audit: the fallback landing ${dir} contains a symlink (${entry.name}) \u2014 artifacts written under it would land outside the landing. Remove it and re-run.`
|
|
1010
|
+
);
|
|
1011
|
+
}
|
|
1012
|
+
continue;
|
|
1013
|
+
}
|
|
1014
|
+
if (!stat.isFile()) {
|
|
1015
|
+
throw new FatalConfigError(
|
|
1016
|
+
`audit: the fallback landing ${dir} contains a special file (${entry.name}) \u2014 a write to it would block or be captured by whoever holds the other end. Remove it and re-run.`
|
|
1017
|
+
);
|
|
1018
|
+
}
|
|
1019
|
+
if (stat.nlink > 1) {
|
|
1020
|
+
throw new FatalConfigError(
|
|
1021
|
+
`audit: the fallback landing ${dir} contains a hardlinked file (${entry.name}) \u2014 a write to it would also write through its twin. Remove it and re-run.`
|
|
1022
|
+
);
|
|
1023
|
+
}
|
|
1024
|
+
}
|
|
1025
|
+
}
|
|
1026
|
+
/**
|
|
1027
|
+
* Refuse a fallback landing that resolves inside the audited repository.
|
|
1028
|
+
* A resolution failure (a non-directory component, a symlink loop, an
|
|
1029
|
+
* unreadable ancestor) falls through at the pre-adoption sites: such a
|
|
1030
|
+
* path cannot resolve to a usable landing, and the adoption checks that
|
|
1031
|
+
* still run afterwards own that state with the actionable message. At the
|
|
1032
|
+
* final site nothing runs afterwards, so the same failure fails closed
|
|
1033
|
+
* instead of returning an unvalidated landing.
|
|
1034
|
+
*/
|
|
1035
|
+
static assertAuditLandingIsOutsideRepo(dir, resolvedProjectRoot, finalCheck = false) {
|
|
1036
|
+
let contained = false;
|
|
1037
|
+
try {
|
|
1038
|
+
contained = _Storage.isPathWithinDirectory(dir, resolvedProjectRoot);
|
|
1039
|
+
} catch (err) {
|
|
1040
|
+
if (finalCheck) {
|
|
1041
|
+
throw new FatalConfigError(
|
|
1042
|
+
`audit: the fallback landing ${dir} could not be validated as outside the audited project root (${err.message}) \u2014 remove it and re-run.`
|
|
1043
|
+
);
|
|
1044
|
+
}
|
|
1045
|
+
}
|
|
1046
|
+
if (contained) {
|
|
1047
|
+
throw new FatalConfigError(
|
|
1048
|
+
`audit: the fallback landing ${dir} resolves inside the audited project root \u2014 point QWEN_HOME outside the repository and re-run.`
|
|
1049
|
+
);
|
|
1050
|
+
}
|
|
1051
|
+
}
|
|
882
1052
|
getQwenDir() {
|
|
883
1053
|
return path2.join(this.targetDir, QWEN_DIR);
|
|
884
1054
|
}
|
|
@@ -1023,11 +1193,51 @@ function getSessionIdFromContext(ctx) {
|
|
|
1023
1193
|
}
|
|
1024
1194
|
__name(getSessionIdFromContext, "getSessionIdFromContext");
|
|
1025
1195
|
|
|
1196
|
+
// packages/core/src/utils/sessionIdContext.ts
|
|
1197
|
+
init_esbuild_shims();
|
|
1198
|
+
import { AsyncLocalStorage as AsyncLocalStorage2 } from "node:async_hooks";
|
|
1199
|
+
var sessionIdContext = new AsyncLocalStorage2();
|
|
1200
|
+
var projectDirBySession = /* @__PURE__ */ new Map();
|
|
1201
|
+
function registerSessionProjectDir(sessionId, projectDir) {
|
|
1202
|
+
if (sessionId && projectDir) projectDirBySession.set(sessionId, projectDir);
|
|
1203
|
+
}
|
|
1204
|
+
__name(registerSessionProjectDir, "registerSessionProjectDir");
|
|
1205
|
+
function getSessionProjectDir(sessionId) {
|
|
1206
|
+
return projectDirBySession.get(sessionId);
|
|
1207
|
+
}
|
|
1208
|
+
__name(getSessionProjectDir, "getSessionProjectDir");
|
|
1209
|
+
function unregisterSessionProjectDir(sessionId) {
|
|
1210
|
+
projectDirBySession.delete(sessionId);
|
|
1211
|
+
}
|
|
1212
|
+
__name(unregisterSessionProjectDir, "unregisterSessionProjectDir");
|
|
1213
|
+
var modelBySession = /* @__PURE__ */ new Map();
|
|
1214
|
+
var modelIdentityBySession = /* @__PURE__ */ new Map();
|
|
1215
|
+
function registerSessionModel(sessionId, model, identity) {
|
|
1216
|
+
if (!sessionId || !model) return;
|
|
1217
|
+
modelBySession.set(sessionId, model);
|
|
1218
|
+
if (identity) modelIdentityBySession.set(sessionId, identity);
|
|
1219
|
+
else modelIdentityBySession.delete(sessionId);
|
|
1220
|
+
}
|
|
1221
|
+
__name(registerSessionModel, "registerSessionModel");
|
|
1222
|
+
function getSessionModel(sessionId) {
|
|
1223
|
+
return modelBySession.get(sessionId);
|
|
1224
|
+
}
|
|
1225
|
+
__name(getSessionModel, "getSessionModel");
|
|
1226
|
+
function getSessionModelIdentity(sessionId) {
|
|
1227
|
+
return modelIdentityBySession.get(sessionId);
|
|
1228
|
+
}
|
|
1229
|
+
__name(getSessionModelIdentity, "getSessionModelIdentity");
|
|
1230
|
+
function unregisterSessionModel(sessionId) {
|
|
1231
|
+
modelBySession.delete(sessionId);
|
|
1232
|
+
modelIdentityBySession.delete(sessionId);
|
|
1233
|
+
}
|
|
1234
|
+
__name(unregisterSessionModel, "unregisterSessionModel");
|
|
1235
|
+
|
|
1026
1236
|
// packages/core/src/utils/debugLogger.ts
|
|
1027
1237
|
init_esbuild_shims();
|
|
1028
1238
|
import { promises as fs4 } from "node:fs";
|
|
1029
1239
|
import path4 from "node:path";
|
|
1030
|
-
import { AsyncLocalStorage as
|
|
1240
|
+
import { AsyncLocalStorage as AsyncLocalStorage3 } from "node:async_hooks";
|
|
1031
1241
|
import util from "node:util";
|
|
1032
1242
|
|
|
1033
1243
|
// packages/core/src/utils/symlink.ts
|
|
@@ -1114,7 +1324,9 @@ var ensureDebugDirPromise = null;
|
|
|
1114
1324
|
var ensuredDebugDirPath = null;
|
|
1115
1325
|
var hasWriteFailure = false;
|
|
1116
1326
|
var globalSession = null;
|
|
1117
|
-
var
|
|
1327
|
+
var lastAliasedKey = null;
|
|
1328
|
+
var aliasChain = Promise.resolve();
|
|
1329
|
+
var sessionContext = new AsyncLocalStorage3();
|
|
1118
1330
|
function isDebugLogFileEnabled() {
|
|
1119
1331
|
const value = process.env["QWEN_DEBUG_LOG_FILE"];
|
|
1120
1332
|
if (!value) return false;
|
|
@@ -1125,7 +1337,12 @@ __name(isDebugLogFileEnabled, "isDebugLogFileEnabled");
|
|
|
1125
1337
|
function getActiveSession() {
|
|
1126
1338
|
const contextSession = sessionContext.getStore();
|
|
1127
1339
|
if (contextSession === false) return null;
|
|
1128
|
-
|
|
1340
|
+
if (contextSession) return contextSession;
|
|
1341
|
+
const sessionId = sessionIdContext.getStore();
|
|
1342
|
+
if (sessionId) {
|
|
1343
|
+
return { getSessionId: /* @__PURE__ */ __name(() => sessionId, "getSessionId") };
|
|
1344
|
+
}
|
|
1345
|
+
return globalSession;
|
|
1129
1346
|
}
|
|
1130
1347
|
__name(getActiveSession, "getActiveSession");
|
|
1131
1348
|
function ensureDebugDirExists() {
|
|
@@ -1167,6 +1384,7 @@ function writeLog(session, level, tag, args) {
|
|
|
1167
1384
|
const message = formatArgs(args);
|
|
1168
1385
|
const traceCtx = getTraceContext();
|
|
1169
1386
|
const line = buildLogLine(level, message, tag, traceCtx);
|
|
1387
|
+
updateLatestDebugLogAlias(sessionId);
|
|
1170
1388
|
void ensureDebugDirExists().then(() => fs4.appendFile(logFilePath, line, "utf8")).catch(() => {
|
|
1171
1389
|
hasWriteFailure = true;
|
|
1172
1390
|
});
|
|
@@ -1178,6 +1396,13 @@ function isDebugLoggingDegraded() {
|
|
|
1178
1396
|
__name(isDebugLoggingDegraded, "isDebugLoggingDegraded");
|
|
1179
1397
|
var DEBUG_LATEST_ALIAS = "latest";
|
|
1180
1398
|
var SESSION_ID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
1399
|
+
function doUpdateLatestDebugLogAlias(sessionId) {
|
|
1400
|
+
const aliasPath = path4.join(Storage.getGlobalDebugDir(), DEBUG_LATEST_ALIAS);
|
|
1401
|
+
const targetPath = Storage.getDebugLogPath(sessionId);
|
|
1402
|
+
return ensureDebugDirExists().then(() => updateSymlink(aliasPath, targetPath, { fallbackCopy: false })).catch(() => {
|
|
1403
|
+
});
|
|
1404
|
+
}
|
|
1405
|
+
__name(doUpdateLatestDebugLogAlias, "doUpdateLatestDebugLogAlias");
|
|
1181
1406
|
function updateLatestDebugLogAlias(sessionId) {
|
|
1182
1407
|
if (!isDebugLogFileEnabled()) {
|
|
1183
1408
|
return;
|
|
@@ -1185,10 +1410,12 @@ function updateLatestDebugLogAlias(sessionId) {
|
|
|
1185
1410
|
if (!SESSION_ID_PATTERN.test(sessionId)) {
|
|
1186
1411
|
return;
|
|
1187
1412
|
}
|
|
1188
|
-
const
|
|
1189
|
-
|
|
1190
|
-
|
|
1191
|
-
}
|
|
1413
|
+
const key = path4.join(Storage.getGlobalDebugDir(), sessionId);
|
|
1414
|
+
if (key === lastAliasedKey) {
|
|
1415
|
+
return;
|
|
1416
|
+
}
|
|
1417
|
+
lastAliasedKey = key;
|
|
1418
|
+
aliasChain = aliasChain.then(() => doUpdateLatestDebugLogAlias(sessionId));
|
|
1192
1419
|
}
|
|
1193
1420
|
__name(updateLatestDebugLogAlias, "updateLatestDebugLogAlias");
|
|
1194
1421
|
function setDebugLogSession(session) {
|
|
@@ -1274,6 +1501,14 @@ export {
|
|
|
1274
1501
|
formatTraceparent,
|
|
1275
1502
|
setShellTracePropagation,
|
|
1276
1503
|
isShellTracePropagationEnabled,
|
|
1504
|
+
sessionIdContext,
|
|
1505
|
+
registerSessionProjectDir,
|
|
1506
|
+
getSessionProjectDir,
|
|
1507
|
+
unregisterSessionProjectDir,
|
|
1508
|
+
registerSessionModel,
|
|
1509
|
+
getSessionModel,
|
|
1510
|
+
getSessionModelIdentity,
|
|
1511
|
+
unregisterSessionModel,
|
|
1277
1512
|
isDebugLogFileEnabled,
|
|
1278
1513
|
isDebugLoggingDegraded,
|
|
1279
1514
|
setDebugLogSession,
|
|
@@ -1287,11 +1522,11 @@ export {
|
|
|
1287
1522
|
*/
|
|
1288
1523
|
/**
|
|
1289
1524
|
* @license
|
|
1290
|
-
* Copyright 2025 Qwen
|
|
1525
|
+
* Copyright 2025 Qwen
|
|
1291
1526
|
* SPDX-License-Identifier: Apache-2.0
|
|
1292
1527
|
*/
|
|
1293
1528
|
/**
|
|
1294
1529
|
* @license
|
|
1295
|
-
* Copyright 2025 Qwen
|
|
1530
|
+
* Copyright 2025 Qwen Code
|
|
1296
1531
|
* SPDX-License-Identifier: Apache-2.0
|
|
1297
1532
|
*/
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
|
-
import {
|
|
4
|
-
t
|
|
5
|
-
} from "./chunk-OE52YHCZ.js";
|
|
6
3
|
import {
|
|
7
4
|
require_semver
|
|
8
5
|
} from "./chunk-2AUM35J5.js";
|
|
6
|
+
import {
|
|
7
|
+
t
|
|
8
|
+
} from "./chunk-W2WRNJKX.js";
|
|
9
9
|
import {
|
|
10
10
|
getNpmCliPath
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-7DPKPBOQ.js";
|
|
12
12
|
import {
|
|
13
13
|
getPackageJson
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-W3N5XAZ6.js";
|
|
15
15
|
import {
|
|
16
16
|
createDebugLogger
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-2NNTE2ED.js";
|
|
18
18
|
import {
|
|
19
19
|
init_esbuild_shims
|
|
20
20
|
} from "./chunk-5O2XNYP6.js";
|