@qwen-code/qwen-code 0.22.0-nightly.20260825.22bb5e8b9f → 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/coordinate/SKILL.md +3 -3
- package/bundled/qc-helper/docs/configuration/model-providers.md +2 -0
- package/bundled/qc-helper/docs/configuration/settings.md +6 -6
- package/bundled/qc-helper/docs/features/channels/_meta.ts +1 -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 +1 -1
- package/bundled/qc-helper/docs/qwen-serve.md +2 -0
- package/bundled/review/SKILL.md +47 -12
- package/bundled/review/references/persistence.md +6 -6
- package/bundled/review/references/posting.md +2 -2
- package/chunks/MaxSizedBox-UUTUE42J.js +112 -0
- package/chunks/{StandaloneSessionPicker-NEWUAPCT.js → StandaloneSessionPicker-XF2TVJFK.js} +78 -77
- package/chunks/{acp-startup-profiler-T4GEAPLX.js → acp-startup-profiler-GNYAL6LI.js} +2 -2
- package/chunks/{acpAgent-A5CIQGW6.js → acpAgent-GY53MJIW.js} +254 -158
- package/chunks/{agent-TQ6CYOIL.js → agent-7U6CC5KF.js} +41 -41
- package/chunks/agent-headless-32O4L2CT.js +87 -0
- package/chunks/{anthropicContentGenerator-FSBGS426.js → anthropicContentGenerator-U76GTVB6.js} +7 -7
- package/chunks/{artifact-tool-UQTNZDUF.js → artifact-tool-XDJCZZCF.js} +2 -2
- package/chunks/{askUserQuestion-BSZALR7M.js → askUserQuestion-ZXXERLEV.js} +2 -2
- package/chunks/{bridge-MBOVCHXN.js → bridge-DFX2FFH4.js} +57 -56
- package/chunks/{ca-DZBZOMLU.js → ca-7HPYOYSZ.js} +1 -0
- package/chunks/{channel-management-service-XGGL6PLF.js → channel-management-service-HXXS3HOZ.js} +4 -4
- package/chunks/channel-settings-store-ELLH2M4M.js +117 -0
- package/chunks/{channel-worker-group-GIXIF4VT.js → channel-worker-group-EVDC2P4K.js} +5 -5
- package/chunks/{channel-worker-manager-ZBSYXJEB.js → channel-worker-manager-IJJZHGEI.js} +5 -5
- package/chunks/{channel-worker-supervisor-NI6JEY4Q.js → channel-worker-supervisor-YSKB5GVB.js} +9 -5
- package/chunks/{chunk-CPZQJP6J.js → chunk-27ONXAFY.js} +1 -1
- package/chunks/{chunk-FXNLH7E6.js → chunk-2CRNTW2B.js} +18 -2
- package/chunks/{read-package-up-UXSW3YPB.js → chunk-2EAZ43JQ.js} +1 -0
- package/chunks/{chunk-YX4II73B.js → chunk-2FN2HNTI.js} +2 -2
- package/chunks/{chunk-7KGJGYGA.js → chunk-2MHGD7EE.js} +1 -1
- package/chunks/{chunk-H5K5MRU7.js → chunk-2NCVUT3C.js} +4 -4
- package/chunks/{chunk-VLEGGCEA.js → chunk-2NNTE2ED.js} +171 -1
- package/chunks/{chunk-LNKZTLTH.js → chunk-2SERYG4T.js} +1 -1
- package/chunks/{chunk-UEHH33VE.js → chunk-2YDYDDE2.js} +6 -6
- package/chunks/{chunk-U7GJPTEY.js → chunk-2YEZNBSD.js} +66 -60
- package/chunks/{chunk-L6PFEZUM.js → chunk-2ZV3CZKI.js} +82 -12
- package/chunks/{chunk-36XTQW3N.js → chunk-3B5DCAQU.js} +28 -11
- package/chunks/{chunk-DE24WTEJ.js → chunk-3BV7TZNQ.js} +3 -3
- package/chunks/{chunk-IKPQM6I5.js → chunk-3FSBMAYD.js} +1 -1
- package/chunks/{chunk-J54EA46E.js → chunk-3UZCLCXR.js} +3 -3
- package/chunks/{chunk-ZROP2DTX.js → chunk-43C2II2G.js} +5 -5
- package/chunks/{chunk-2ZH5XAOO.js → chunk-47SIHHPL.js} +8 -8
- package/chunks/{chunk-EEBIINBT.js → chunk-4DCP3362.js} +6 -14
- package/chunks/{chunk-DF6DJZIX.js → chunk-4TPAG3O7.js} +1 -1
- package/chunks/{chunk-6L5EXDDN.js → chunk-5CI4AXDD.js} +4 -4
- package/chunks/{chunk-7KOFLDEP.js → chunk-5JTIYALA.js} +1 -1
- package/chunks/{chunk-YPJVAQ7V.js → chunk-5MK32KJV.js} +3 -3
- package/chunks/{chunk-XXA72PGJ.js → chunk-5T4LWWNX.js} +2 -2
- package/chunks/{chunk-NA6AZRDQ.js → chunk-5Y2JCJAH.js} +2 -2
- package/chunks/{chunk-3ROKI6MD.js → chunk-5ZYZPDDF.js} +978 -886
- package/chunks/{chunk-U4SJGOBF.js → chunk-62PXFOK4.js} +4 -4
- package/chunks/{chunk-SKXXO64C.js → chunk-6E4WHQJV.js} +1 -1
- package/chunks/{chunk-6Y7XMJFF.js → chunk-6HTMIKXZ.js} +6 -6
- package/chunks/{chunk-MGEXTDBI.js → chunk-6KS24S3X.js} +2 -2
- package/chunks/{chunk-ZJWFRMCY.js → chunk-6US7BF3G.js} +2 -2
- package/chunks/{chunk-RSOG6JND.js → chunk-6YAR6ZU3.js} +2 -2
- package/chunks/{chunk-Z3GFRVAY.js → chunk-73WFGVIZ.js} +3 -3
- package/chunks/{chunk-IX3CWNG7.js → chunk-76WGY6LW.js} +3 -3
- package/chunks/{chunk-CGWPQ6IM.js → chunk-77TOMRBG.js} +3 -3
- package/chunks/{chunk-JVTU5JYO.js → chunk-7AS7QX72.js} +1 -1
- package/chunks/{chunk-RLIS2VLZ.js → chunk-7DPKPBOQ.js} +2 -2
- package/chunks/{chunk-XQNWTA4Y.js → chunk-7JPW6IYH.js} +1 -1
- package/chunks/{chunk-UEY5WCRB.js → chunk-7QGEJI7M.js} +1 -1
- package/chunks/{chunk-GWUZOBCQ.js → chunk-A7X32SCT.js} +5 -5
- package/chunks/{chunk-R7Q5V3A5.js → chunk-AYVIGUUK.js} +1 -1
- package/chunks/{chunk-AIT6BMBI.js → chunk-BDHLBR46.js} +17 -3
- package/chunks/{chunk-3G6MRLTM.js → chunk-BKDAF7ES.js} +2 -2
- package/chunks/{chunk-5AHCPETA.js → chunk-BQBUZDDH.js} +3 -3
- package/chunks/{chunk-3KV5KXKU.js → chunk-BVE5EMIG.js} +2 -2
- package/chunks/{chunk-NDVTSFWZ.js → chunk-BX2BZPFJ.js} +3 -3
- package/chunks/{chunk-7UVAWPYG.js → chunk-C4WBKZJT.js} +4 -4
- package/chunks/{chunk-HYBEI2LH.js → chunk-CITGRGCM.js} +2 -1
- package/chunks/{chunk-TEQKBONY.js → chunk-CPPYZHBN.js} +1 -1
- package/chunks/chunk-DCSAVGDJ.js +20 -0
- package/chunks/{chunk-RSWDOHXS.js → chunk-DEYPMJPD.js} +1 -1
- package/chunks/{chunk-OWE7TE3F.js → chunk-DP7LABIB.js} +1 -1
- package/chunks/{chunk-LQF4PWEU.js → chunk-E4I5MVBR.js} +1 -1
- package/chunks/{chunk-NFDTDV37.js → chunk-E55H6BZ7.js} +4 -0
- package/chunks/{chunk-K623ENWT.js → chunk-E6FGMDFQ.js} +4 -0
- package/chunks/{chunk-QWTNAHCM.js → chunk-EAV3TENS.js} +3 -3
- package/chunks/{chunk-27HAGBZG.js → chunk-EB4VDXNI.js} +1 -1
- package/chunks/{chunk-RDPKOVXL.js → chunk-EC5BONC3.js} +1 -1
- package/chunks/{chunk-JHZIPJWY.js → chunk-EEQYTWGU.js} +5 -5
- package/chunks/{chunk-MFSV57XN.js → chunk-EKP3M4RF.js} +1 -1
- package/chunks/{chunk-R544UY5E.js → chunk-ELY4QVIB.js} +1 -1
- package/chunks/{chunk-PFCVB5ZI.js → chunk-EMGAVCBZ.js} +2 -2
- package/chunks/{chunk-JGDTCEBH.js → chunk-FJWICLG7.js} +1 -1
- package/chunks/{chunk-OXMS5HCS.js → chunk-FK4H3V6S.js} +5 -5
- package/chunks/{chunk-WANR3VVK.js → chunk-FN5C6C7G.js} +125 -60
- package/chunks/{chunk-5PVLDRGJ.js → chunk-FPH6TXD3.js} +1 -1
- package/chunks/{chunk-OY3ZSNQC.js → chunk-FVDQ5E67.js} +3 -3
- package/chunks/{chunk-J752LLEJ.js → chunk-GNMJNDZE.js} +1 -1
- package/chunks/{chunk-MSCVPOZR.js → chunk-GNRVKN76.js} +4 -4
- package/chunks/{chunk-FNZ42WN7.js → chunk-GTUKW3I6.js} +1 -1
- package/chunks/{chunk-NSPS67BG.js → chunk-GZJUCMH4.js} +1 -1
- package/chunks/{chunk-SNWAXNJ4.js → chunk-HJOWQUE2.js} +14 -11
- package/chunks/{chunk-3K5ORUVO.js → chunk-I32QCIK7.js} +1 -1
- package/chunks/{chunk-BOQRZ443.js → chunk-I6VVOZDK.js} +2 -2
- package/chunks/{chunk-KUPVZ4EO.js → chunk-I6YW3T3W.js} +207 -26
- package/chunks/{chunk-O6CS7VRT.js → chunk-ICWGPK23.js} +7 -7
- package/chunks/{chunk-EFT2T2LA.js → chunk-IJVDHPKD.js} +2 -2
- package/chunks/{chunk-SEMN7BNM.js → chunk-IKN3IUJP.js} +9 -8
- package/chunks/{chunk-O5ONGZGZ.js → chunk-ILPXSKGQ.js} +2 -2
- package/chunks/{chunk-QQQSUCC4.js → chunk-IPQA4SR5.js} +1 -1
- package/chunks/{chunk-SXBRB7ZP.js → chunk-IRIX323G.js} +2 -2
- package/chunks/{chunk-EJ5XRNOK.js → chunk-J7MLXFC5.js} +2 -2
- package/chunks/{chunk-KDGY3ST4.js → chunk-JECO75XD.js} +2 -2
- package/chunks/chunk-JLGFGPZJ.js +346 -0
- package/chunks/{chunk-COT2IXPM.js → chunk-JUIJ3FXC.js} +5 -5
- package/chunks/{chunk-IFWUT4GY.js → chunk-JVPFTDBK.js} +1 -1
- package/chunks/{chunk-455ZIBFX.js → chunk-K63NK3KL.js} +13 -13
- package/chunks/{chunk-MBLNXX3G.js → chunk-KCOXDRQL.js} +5 -5
- package/chunks/{chunk-3LUGIYS3.js → chunk-KOJ6MHD5.js} +3 -1
- package/chunks/{chunk-W4JA6Z44.js → chunk-KWFP3WV6.js} +9 -7
- package/chunks/{chunk-QKSMM4HF.js → chunk-L436XFLJ.js} +1 -1
- package/chunks/{chunk-M4TV7AJX.js → chunk-LI2HEMKO.js} +4 -4
- package/chunks/{chunk-FLTGTSLG.js → chunk-LJP2BBMK.js} +4 -4
- package/chunks/{chunk-HTIG2U5C.js → chunk-LRKMQPMD.js} +1 -1
- package/chunks/{chunk-YS4H3OFV.js → chunk-MDZO5V2O.js} +6 -6
- package/chunks/{chunk-2HYQZYPT.js → chunk-MW5AHWOZ.js} +7 -7
- package/chunks/{chunk-SJDR2S55.js → chunk-MYLXL7F6.js} +11 -11
- package/chunks/{chunk-PIZZIIEA.js → chunk-MZS7GEC7.js} +1 -1
- package/chunks/{chunk-H3JIT2M6.js → chunk-NER3H7PI.js} +1 -1
- package/chunks/{chunk-XYUJPDPB.js → chunk-NVK4HJYQ.js} +1 -1
- package/chunks/{chunk-GQQHY6TL.js → chunk-NY3IJYAV.js} +7 -7
- package/chunks/{chunk-3E53DKST.js → chunk-O3BUXIPM.js} +3 -3
- package/chunks/{chunk-QOUFO7TV.js → chunk-O5YGAEQS.js} +6 -6
- package/chunks/{chunk-OINGLDAX.js → chunk-ODXCSIH5.js} +4 -4
- package/chunks/{chunk-FMDWTE5I.js → chunk-OI2DR6QB.js} +2 -2
- package/chunks/{chunk-ENZMDVCM.js → chunk-OQ6LTSX3.js} +1 -1
- package/chunks/{chunk-KUDADN3R.js → chunk-OT26ITEY.js} +3 -3
- package/chunks/{chunk-FZUVUBYH.js → chunk-OX44MOAN.js} +3 -3
- package/chunks/{chunk-LURJYO2T.js → chunk-OZ6KS6KW.js} +4 -0
- package/chunks/{chunk-D2IGZJA7.js → chunk-PAJGKZAA.js} +272 -3
- package/chunks/{chunk-MTKBZIXU.js → chunk-PVBT5QPD.js} +1 -1
- package/chunks/{chunk-HDH5IDJH.js → chunk-R2ZJH3FV.js} +3 -3
- package/chunks/{chunk-SJLW5XGQ.js → chunk-RRKNX553.js} +1 -1
- package/chunks/{chunk-JS55F2GJ.js → chunk-SDVF6A42.js} +3 -3
- package/chunks/{chunk-DZPWZPGJ.js → chunk-SKNVVYIJ.js} +3 -3
- package/chunks/{chunk-SIC4S3RX.js → chunk-SLEWBQWM.js} +2 -2
- package/chunks/{chunk-P7DVAZKV.js → chunk-SM7ZVKTF.js} +7 -7
- package/chunks/{chunk-3N7EFOOM.js → chunk-SQPOJ4ZI.js} +11 -1
- package/chunks/{chunk-YOM3CJOP.js → chunk-SRGENTPF.js} +19 -19
- package/chunks/{chunk-ZB7VDPZB.js → chunk-T2CRBIDJ.js} +1 -1
- package/chunks/{chunk-F37T2S4O.js → chunk-T2HMXHYA.js} +6 -6
- package/chunks/{chunk-5X33EPHJ.js → chunk-T6OODF2U.js} +1 -1
- package/chunks/{chunk-7GECZMES.js → chunk-TKO4TLT6.js} +3 -3
- package/chunks/{chunk-PQ4RTSTH.js → chunk-TOF4UZHH.js} +3 -3
- package/chunks/{chunk-LD76HNCC.js → chunk-UCSV2IZW.js} +3 -3
- package/chunks/{chunk-EUZE3GSL.js → chunk-UX3IFLJM.js} +93 -9
- package/chunks/{chunk-AHQBSQYT.js → chunk-V3GINY6K.js} +3 -3
- package/chunks/{chunk-DD5XZICM.js → chunk-VL4YX3FH.js} +1 -1
- package/chunks/{chunk-DLYJ3RN7.js → chunk-VMDURMFY.js} +58 -32
- package/chunks/{chunk-E6BJFSLJ.js → chunk-W2WRNJKX.js} +6 -6
- package/chunks/{chunk-YLFLHKDL.js → chunk-W3N5XAZ6.js} +1 -1
- package/chunks/{chunk-QKGJIP2H.js → chunk-WBT3STGU.js} +1 -1
- package/chunks/{chunk-X3PRXXUH.js → chunk-WEGXPP5E.js} +1 -1
- package/chunks/{chunk-V6R3IEHF.js → chunk-XJS54K4A.js} +2 -2
- package/chunks/{chunk-NDJ3436G.js → chunk-XNXWEGKB.js} +3 -3
- package/chunks/{chunk-UFWRXRQ5.js → chunk-XYX474JQ.js} +1312 -290
- package/chunks/{chunk-UY2JOZK7.js → chunk-ZEADBZLO.js} +3 -3
- package/chunks/{chunk-SNJOBGQV.js → chunk-ZJG323IA.js} +4 -3
- package/chunks/{chunk-CZIF7I53.js → chunk-ZKAZP2ZG.js} +2 -2
- package/chunks/{chunk-DV3KOUUU.js → chunk-ZLTEQYNC.js} +2 -2
- package/chunks/{chunk-RLR7K4JJ.js → chunk-ZWKGZB2K.js} +3 -3
- package/chunks/{chunk-EJ2GPZDU.js → chunk-ZXDM7DYV.js} +1049 -383
- package/chunks/config-utils-7M6PCTLT.js +113 -0
- package/chunks/contextCommand-G4QG3TW6.js +108 -0
- package/chunks/{core-runtime-SZFD2YQA.js → core-runtime-PKNQ63VL.js} +53 -52
- package/chunks/{create-sub-session-OXESCUS7.js → create-sub-session-PLGPY6TV.js} +53 -52
- package/chunks/{create-sub-session-5ZLCAS2P.js → create-sub-session-RVHSWVAP.js} +3 -3
- package/chunks/{cron-create-P4CPPO25.js → cron-create-IJGVR5R2.js} +4 -4
- package/chunks/{cron-delete-FPD75GL4.js → cron-delete-4N5BI6GL.js} +4 -4
- package/chunks/{cron-list-QPML4MWL.js → cron-list-2CATIPUX.js} +4 -4
- package/chunks/{daemon-HY4AVTUM.js → daemon-NAYK4XXU.js} +34 -12
- package/chunks/{daemon-git-worktree-guard-EAVTZ6CE.js → daemon-git-worktree-guard-LDBJXH2U.js} +331 -86
- package/chunks/daemon-status-provider-F5FEHVVG.js +118 -0
- package/chunks/daemon-trust-policy-C6YTU5CQ.js +114 -0
- package/chunks/{daemon-trust-policy-monitor-ITF54474.js → daemon-trust-policy-monitor-IGEJPHQ4.js} +59 -58
- package/chunks/{deferred-core-runtime-WQ4NQA3N.js → deferred-core-runtime-GHT3GDOR.js} +53 -52
- package/chunks/{display-image-HOBBUJS5.js → display-image-DR55LL6M.js} +5 -5
- package/chunks/dist-4Q7NTUNB.js +2512 -0
- package/chunks/{dist-RW4QZD3K.js → dist-6H6RZ5H6.js} +2 -2
- package/chunks/{dist-ZUWCGMJ4.js → dist-7CKN54NL.js} +1 -1
- package/chunks/{dist-ZQJEKFZH.js → dist-DJBNNPLN.js} +1 -1
- package/chunks/{dist-5BX3J3AL.js → dist-FVJZSIO4.js} +28 -7
- package/chunks/{dist-OB6D7E7T.js → dist-SATKXKUR.js} +1 -1
- package/chunks/{dist-MEANA2OS.js → dist-TJUDJTCB.js} +1 -1
- package/chunks/{dist-4LRFQF7R.js → dist-UQUFZDIY.js} +1 -1
- package/chunks/{dist-7HGG7XLA.js → dist-ZBVOXSKF.js} +1 -1
- package/chunks/earlyInputCapture-HOSJTLWP.js +109 -0
- package/chunks/{edit-4MZYBPF5.js → edit-KSPVUEAS.js} +42 -42
- package/chunks/{en-X66KZS7T.js → en-6MDBWMTG.js} +1 -0
- package/chunks/{enter-worktree-WNR4JUPU.js → enter-worktree-UOZ6ZTP7.js} +7 -7
- package/chunks/{enterPlanMode-2EL6YAM5.js → enterPlanMode-DZTABSKN.js} +41 -41
- package/chunks/{environment-4QYNT2L3.js → environment-JXOSW25V.js} +57 -54
- package/chunks/{errors-N66MMOYD.js → errors-IOXFDE4J.js} +55 -54
- package/chunks/{exit-worktree-BUHUM6YC.js → exit-worktree-G2QATUCV.js} +7 -7
- package/chunks/{exitPlanMode-F73VQJBO.js → exitPlanMode-PZG4FXRB.js} +41 -41
- package/chunks/{fast-path-3L4YK6SO.js → fast-path-EBS7NAVL.js} +2 -2
- package/chunks/{gemini-4PINQJWX.js → gemini-JELEKOVS.js} +107 -103
- package/chunks/{geminiContentGenerator-7T7IU2V5.js → geminiContentGenerator-I2CKP7XI.js} +8 -8
- package/chunks/{glob-TWUYSRRG.js → glob-TDVEVPQZ.js} +41 -41
- package/chunks/{goal-tools-FTDQHRRX.js → goal-tools-CNVXMSZD.js} +70 -27
- package/chunks/{grep-QUQ3J6SR.js → grep-3NLSS32D.js} +6 -6
- package/chunks/handleAutoUpdate-AWAGHKOX.js +111 -0
- package/chunks/{i18n-Q6K7AX7Y.js → i18n-CYA25C5F.js} +54 -53
- package/chunks/{image-gen-RYOBEDNB.js → image-gen-63NN2H5N.js} +9 -9
- package/chunks/initializer-JD2FLNLO.js +115 -0
- package/chunks/installationInfo-N3DCWVWR.js +109 -0
- package/chunks/{keychain-token-storage-LQTBIXSX.js → keychain-token-storage-3MGFRYGM.js} +2 -2
- package/chunks/list-XDQAUET5.js +118 -0
- package/chunks/{list-agents-522ILPAR.js → list-agents-EXRSHIDJ.js} +2 -2
- package/chunks/loadedSettingsAdapter-IK7H5JRK.js +112 -0
- package/chunks/{loggingContentGenerator-RTDUJF6Y.js → loggingContentGenerator-CZWUAHAI.js} +20 -20
- package/chunks/{loop-wakeup-VSA4TBIC.js → loop-wakeup-XBPB2BRO.js} +5 -5
- package/chunks/{ls-FUCLEBTL.js → ls-WFONAND2.js} +4 -4
- package/chunks/{lsp-FYP6TW4R.js → lsp-DUKPDUXN.js} +2 -2
- package/chunks/{managed-npm-update-NUDVKV7F.js → managed-npm-update-54W23SP5.js} +54 -53
- package/chunks/mcp-2E7ZLMEE.js +112 -0
- package/chunks/{monitor-AU2SG5OL.js → monitor-A4J5QRGJ.js} +41 -41
- package/chunks/nonInteractiveCli-ZNDXB62Y.js +185 -0
- package/chunks/{notebook-edit-TGU7XHIO.js → notebook-edit-4ANFZON5.js} +42 -42
- package/chunks/{openaiContentGenerator-QPFWSUPT.js → openaiContentGenerator-JCCJJQZC.js} +24 -24
- package/chunks/pidfile-DHV2Y7UD.js +113 -0
- package/chunks/{processUtils-ZSHN6VGJ.js → processUtils-JJAR56SO.js} +2 -2
- package/chunks/prompt-terminal-ledger-LDZ6QVYA.js +107 -0
- package/chunks/{qwenContentGenerator-MEXKZX5O.js → qwenContentGenerator-5JM44ZSA.js} +46 -46
- package/chunks/{qwenOAuth2-QHHUP4KQ.js → qwenOAuth2-JIYAWXTW.js} +8 -8
- package/chunks/{read-file-T7ESVJAQ.js → read-file-N3E5DY7N.js} +12 -12
- package/chunks/{read-mcp-resource-5QGBDZ43.js → read-mcp-resource-7A7NFSFL.js} +2 -2
- package/chunks/read-package-up-6T6ICKR7.js +13 -0
- package/chunks/{record-artifact-K6BYYWXY.js → record-artifact-CPJ4IJSD.js} +4 -4
- package/chunks/report-findings-VFM5DENC.js +33 -0
- package/chunks/{request-shutdown-EUXDG4IH.js → request-shutdown-AXVOFN5C.js} +7 -7
- package/chunks/{resumeHistoryUtils-JFEAZEWW.js → resumeHistoryUtils-YQRITQAG.js} +60 -59
- package/chunks/{ripGrep-KOP6AHIX.js → ripGrep-NEIHKBKB.js} +17 -17
- package/chunks/{run-qwen-serve-IAVPTDB7.js → run-qwen-serve-IWGPZADI.js} +577 -67
- package/chunks/{runtime-ZICTJKT5.js → runtime-I76HPFUE.js} +64 -63
- package/chunks/{scheduler-YNVAANNX.js → scheduler-M6YL4K4I.js} +55 -54
- package/chunks/{sdk-exporters-http-GCVM7E4X.js → sdk-exporters-http-XXSKBD2C.js} +2 -2
- package/chunks/{sdk-impl-E3KA6NMY.js → sdk-impl-VPNBLV7I.js} +4 -4
- package/chunks/{send-message-EJUCEIKN.js → send-message-A2GXDX3B.js} +7 -7
- package/chunks/{serve-NF25WYMU.js → serve-XY5S63GN.js} +59 -58
- package/chunks/{server-7LKYWHCE.js → server-TWXRRREO.js} +605 -334
- package/chunks/{session-5FBBDYPI.js → session-IT5ZXU7A.js} +104 -99
- package/chunks/{settings-F7IXLQQW.js → settings-IX5HOOCG.js} +58 -57
- package/chunks/{shell-IJYC4BVX.js → shell-LZ55AAJB.js} +41 -41
- package/chunks/{skill-RTZU743G.js → skill-WSZ53D2R.js} +107 -23
- package/chunks/{skill-settings-ZOHS4J2E.js → skill-settings-5U7FTJIK.js} +58 -57
- package/chunks/{spawnChannel-JLKWUMTV.js → spawnChannel-TMC6VXGN.js} +55 -54
- package/chunks/{standalone-update-W44DUURE.js → standalone-update-CUYGWTR4.js} +55 -54
- package/chunks/{startInteractiveUI-7HPDSR7W.js → startInteractiveUI-O6BI2OSA.js} +219 -170
- package/chunks/{syntheticOutput-3ITPRJOB.js → syntheticOutput-5AJ444QT.js} +3 -3
- package/chunks/{task-create-USIZE733.js → task-create-CDJSOEQD.js} +11 -11
- package/chunks/{task-list-AWAJUPIP.js → task-list-BELMPA75.js} +5 -5
- package/chunks/{task-stop-I2CQSMDX.js → task-stop-U3S3KZG2.js} +2 -2
- package/chunks/{task-update-TFF2KJGL.js → task-update-77VCFDDZ.js} +11 -11
- package/chunks/{team-create-IU2A6HD3.js → team-create-UF4TMQEH.js} +41 -41
- package/chunks/{team-delete-E4C4AMPF.js → team-delete-YWFXX77L.js} +5 -5
- package/chunks/{team-plan-approval-BWI43D37.js → team-plan-approval-U57NSR6C.js} +41 -41
- package/chunks/{terminal-image-renderer-GQAMHJF2.js → terminal-image-renderer-DRL3BROJ.js} +55 -54
- package/chunks/theme-manager-HHJPUDRN.js +104 -0
- package/chunks/{todoWrite-ZUS3HGEF.js → todoWrite-435EO2CS.js} +4 -4
- package/chunks/{tool-search-TQNHT22X.js → tool-search-SV35UV72.js} +17 -17
- package/chunks/{total-session-admission-JMM73HNK.js → total-session-admission-TQI7TCTL.js} +57 -56
- package/chunks/{trustedFolders-BKQ2UXIB.js → trustedFolders-YKK67IP3.js} +54 -53
- package/chunks/{update-relaunch-WI7IWWCM.js → update-relaunch-DX7LVA4P.js} +5 -5
- package/chunks/{updateCheck-K6WUHPPT.js → updateCheck-6JRTKTUF.js} +58 -57
- package/chunks/useAutoAcceptIndicator-MYXYSKSL.js +122 -0
- package/chunks/{validateNonInterActiveAuth-RXCZM7MM.js → validateNonInterActiveAuth-B26O4YJP.js} +100 -95
- package/chunks/{version-IRAYALVC.js → version-K5D7VJ4B.js} +2 -2
- package/chunks/{web-fetch-FUG5KGKQ.js → web-fetch-VFHZLLNZ.js} +16 -16
- package/chunks/{web-search-SO3LHSHP.js → web-search-AQE5A4J5.js} +9 -9
- package/chunks/{workflow-XJRA3GRI.js → workflow-XL6AEUZ7.js} +150 -52
- package/chunks/workspace-providers-status-H6TG34YV.js +116 -0
- package/chunks/{workspace-registration-store-LCB4GHNP.js → workspace-registration-store-I4U3V5LL.js} +1 -1
- package/chunks/{workspace-registry-QWPFWGEF.js → workspace-registry-2PWNIYNI.js} +57 -56
- package/chunks/{workspace-service-MPGLZJF6.js → workspace-service-4FGTUJLA.js} +65 -64
- package/chunks/workspace-skills-status-7VOLUDT6.js +115 -0
- package/chunks/{workspace-trust-reconciler-4QDDGBQZ.js → workspace-trust-reconciler-GJ466KCE.js} +65 -64
- package/chunks/write-file-PWOYCT2K.js +90 -0
- package/chunks/{zh-TW-FZ3ETVR2.js → zh-TW-MV4FWFB6.js} +1 -0
- package/chunks/{zh-K3OJZ5LI.js → zh-X3WGU6SI.js} +1 -0
- package/chunks/{zoom-image-TCBO2YL5.js → zoom-image-NYJPC3NI.js} +12 -12
- package/cli.js +13 -13
- package/locales/ca.js +1 -0
- package/locales/en.js +1 -0
- package/locales/zh-TW.js +1 -0
- package/locales/zh.js +1 -0
- package/package.json +3 -3
- package/web-shell/assets/{abnfDiagram-VCTEODGH-hQsSuKY7.js → abnfDiagram-VCTEODGH-yq7z7Anb.js} +1 -1
- package/web-shell/assets/{arc-CpKLq3XD.js → arc-CbJO0xnT.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-Bplk1J-m.js → architectureDiagram-5GKGNRK7-CRh89421.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-B-cca4ej.js → blockDiagram-NRAW4CY4-C75KAhKv.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-BZ8cn00E.js → c4Diagram-UCG6FXSJ-BzlMveFB.js} +1 -1
- package/web-shell/assets/channel-B3sGR79J.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-DEQ2uYU0.js → chunk-2Q5K7J3B-DA8QDX3a.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-DqH8Lz-4.js → chunk-5VM5RSS4-Bgu7gQ7Y.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-Dru7qMTB.js → chunk-F27PBJKO-BOew7pIK.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-DN8KcdzT.js → chunk-G27WJ6UU-DHx1I-hO.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-DMS-EquZ.js → chunk-JWPE2WC7-SarFW0WU.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-ubbLaEwq.js → chunk-LCL6LL3I-BLzP083Z.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-DdIZqnYy.js → chunk-POPQ4Y6H-Bmkv_iKm.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-DkgYFSnb.js → chunk-SVP7TREG-MPx9r1N2.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-CaesHiYG.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-bqnC4Oq-.js → cose-bilkent-JH36ORCC-DWm6lfOG.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-mDRBhRzB.js → cynefin-OW5HDTMX-DcBUyr5R.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-B4Tod_Ik.js → cynefinDiagram-5FMLGOSQ-Df8qmd_p.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-DU9f-iCw.js → dagre-3AP2YEHR-DDmGspD7.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-BsYVeB7c.js → diagram-S7CK7UJ4-BK_qFvbi.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-frM5Sn9C.js → diagram-UQ7AKVKN-Uw3AP_bi.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-C1Z7uZdv.js → diagram-VSXAHHWV-CJOQKxY7.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-CIY4x0M9.js → diagram-VX7I27RA-DhdvZna5.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-hTl4GIbg.js → diagram-Z3DM3KII-edQU0nlP.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-4loIGTHZ.js → ebnfDiagram-PWID7BFC-4kugBEsO.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-B9Up14ul.js → erDiagram-SSCWMZ5O-BMkFivWO.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-CIPfQBl9.js → flowDiagram-A5DVABFB-BM1ea8g-.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-DaZk3lrl.js → ganttDiagram-EL5Y4UJY-CXj_cKRf.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-D-knAHoQ.js → gitGraphDiagram-WWUBYQGX-D0nEqwqu.js} +1 -1
- package/web-shell/assets/{index-Di8dYJlQ.js → index-B6JN54Pd.js} +1 -1
- package/web-shell/assets/{index-RNKRtdDf.css → index-C-XlQn24.css} +1 -1
- package/web-shell/assets/{index-pkWucfFU.js → index-DLjXM0dn.js} +367 -367
- package/web-shell/assets/{infoDiagram-RXCK75RN-7AJndIyq.js → infoDiagram-RXCK75RN-DF7aGGbQ.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-DjIU3IKv.js → ishikawaDiagram-5VMMS53U-CZYNX1lL.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-D3cf3462.js → journeyDiagram-EYS64GPL-CvrqMUz1.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-CmuPjlRe.js → kanban-definition-3QL26DDD-BZNJQZBj.js} +1 -1
- package/web-shell/assets/{layout-C2Ci1XAx.js → layout-Bf83x7D6.js} +1 -1
- package/web-shell/assets/{linear-CqOKGHue.js → linear-Bkc3ES2f.js} +1 -1
- package/web-shell/assets/{mermaid.core-Bnt57s5_.js → mermaid.core-C6xuovwz.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-BSSJVfj3.js → mindmap-definition-FBJOCRG2-DzH6gVRg.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-DNLHwge4.js → pegDiagram-XKGWAZYB-DCvLh2fa.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-CYRSio_9.js → pieDiagram-E7YTZNPT-BtjVlx_6.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-CzSwKETq.js → quadrantDiagram-AXDQQJYC-IbroqxFe.js} +1 -1
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-Dzbg_Jis.js → railroadDiagram-O6MQD6OU-BvMykiWW.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-CY3Apuzl.js → requirementDiagram-EFPCY7ZU-D-HHMyrh.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-432Hiv50.js → sankeyDiagram-P5KCCOFB-C0XXhB6d.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-CucAf-fk.js → sequenceDiagram-WJ2MYXX4-DseAXj5d.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-RBc9fiXv.js → sizeCapture-X5ZJPWSS-Cek2EweK.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-BwsgjK6k.js → stateDiagram-HBIQ2CUA-yLv8wafW.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DeThXnol.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-DMMYIqPz.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-BbmmEMJb.js → timeline-definition-24CTP7MA-BJuFD7OG.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-DlfQjNzM.js → vennDiagram-4TSXK5OY-CNAavdoV.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-86EXFbP6.js → wardleyDiagram-VM6X3IG4-DaIjAidq.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-794nZBSV.js → xychartDiagram-S5SC5T6Z-DkcQXjTy.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/MaxSizedBox-RQWAKXYC.js +0 -111
- package/chunks/agent-headless-YBSOXERA.js +0 -87
- package/chunks/channel-settings-store-DD6W3EJQ.js +0 -116
- package/chunks/config-utils-WXWWMH2D.js +0 -112
- package/chunks/contextCommand-UKPGPBW5.js +0 -107
- package/chunks/daemon-status-provider-D2HNWRDK.js +0 -116
- package/chunks/daemon-trust-policy-F4JM5CKX.js +0 -113
- package/chunks/earlyInputCapture-54M7AWAF.js +0 -108
- package/chunks/handleAutoUpdate-T36AMYVP.js +0 -110
- package/chunks/initializer-6USYPDX7.js +0 -114
- package/chunks/installationInfo-46TRIE5M.js +0 -108
- package/chunks/list-BCX6JAYS.js +0 -117
- package/chunks/loadedSettingsAdapter-7OBB7B6J.js +0 -111
- package/chunks/mcp-FCS6V74Y.js +0 -111
- package/chunks/nonInteractiveCli-CQUUSJ3N.js +0 -180
- package/chunks/pidfile-SIEQM3X5.js +0 -112
- package/chunks/prompt-terminal-ledger-YIAGDBHG.js +0 -106
- package/chunks/theme-manager-73W4SEDX.js +0 -103
- package/chunks/useAutoAcceptIndicator-SMCU7IYQ.js +0 -121
- package/chunks/workspace-providers-status-ZYXLTCJ5.js +0 -115
- package/chunks/workspace-skills-status-ZVFYCT5C.js +0 -114
- package/chunks/write-file-2KVXXVWB.js +0 -90
- package/web-shell/assets/channel-DggMZLoL.js +0 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-DPMQMV0q.js +0 -1
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-DPMQMV0q.js +0 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-C_HLER48.js +0 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-KP0j5nd5.js +0 -8
package/chunks/{channel-worker-supervisor-NI6JEY4Q.js → channel-worker-supervisor-YSKB5GVB.js}
RENAMED
|
@@ -3,19 +3,21 @@
|
|
|
3
3
|
import {
|
|
4
4
|
ChannelWorkerStartupError,
|
|
5
5
|
ChannelWorkerStopError,
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
cleanupMintedWorkerCaBundleDirs,
|
|
7
|
+
createChannelWorkerSupervisor,
|
|
8
|
+
resolveWorkerCaCertPath
|
|
9
|
+
} from "./chunk-PAJGKZAA.js";
|
|
8
10
|
import "./chunk-FYJ7W2PI.js";
|
|
9
11
|
import "./chunk-Z7B6SRPM.js";
|
|
10
12
|
import "./chunk-7CWEZQ6T.js";
|
|
11
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-JVPFTDBK.js";
|
|
12
14
|
import "./chunk-GYTKQYDB.js";
|
|
13
15
|
import "./chunk-ALMR3E6Q.js";
|
|
14
16
|
import "./chunk-UDG5EZJI.js";
|
|
15
17
|
import "./chunk-M5GB774H.js";
|
|
16
18
|
import "./chunk-3VUENPWF.js";
|
|
17
19
|
import "./chunk-5HBA2Z7V.js";
|
|
18
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-E55H6BZ7.js";
|
|
19
21
|
import "./chunk-IW6RQPQB.js";
|
|
20
22
|
import "./chunk-LJZSMWOH.js";
|
|
21
23
|
import "./chunk-TWPJO254.js";
|
|
@@ -25,5 +27,7 @@ import "./chunk-J2S4EL5Y.js";
|
|
|
25
27
|
export {
|
|
26
28
|
ChannelWorkerStartupError,
|
|
27
29
|
ChannelWorkerStopError,
|
|
28
|
-
|
|
30
|
+
cleanupMintedWorkerCaBundleDirs,
|
|
31
|
+
createChannelWorkerSupervisor,
|
|
32
|
+
resolveWorkerCaCertPath
|
|
29
33
|
};
|
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
} from "./chunk-5PA6UEYA.js";
|
|
13
13
|
import {
|
|
14
14
|
isWorkspaceTrusted
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-XNXWEGKB.js";
|
|
16
16
|
import {
|
|
17
17
|
require_main
|
|
18
18
|
} from "./chunk-5M6IDOMF.js";
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
QWEN_DIR,
|
|
21
21
|
Storage,
|
|
22
22
|
getErrorMessage
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-2NNTE2ED.js";
|
|
24
24
|
import {
|
|
25
25
|
init_esbuild_shims
|
|
26
26
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -139,6 +139,21 @@ function resetEnvironmentTrackingForTesting() {
|
|
|
139
139
|
lastReloadSnapshotSeeded = false;
|
|
140
140
|
}
|
|
141
141
|
__name(resetEnvironmentTrackingForTesting, "resetEnvironmentTrackingForTesting");
|
|
142
|
+
function isFileSourcedEnvKey(key) {
|
|
143
|
+
if (dotEnvSourcedKeys.has(key) || settingsEnvSourcedKeys.has(key)) {
|
|
144
|
+
return true;
|
|
145
|
+
}
|
|
146
|
+
if (process.platform !== "win32") return false;
|
|
147
|
+
const lower = key.toLowerCase();
|
|
148
|
+
for (const tracked of dotEnvSourcedKeys) {
|
|
149
|
+
if (tracked.toLowerCase() === lower) return true;
|
|
150
|
+
}
|
|
151
|
+
for (const tracked of settingsEnvSourcedKeys) {
|
|
152
|
+
if (tracked.toLowerCase() === lower) return true;
|
|
153
|
+
}
|
|
154
|
+
return false;
|
|
155
|
+
}
|
|
156
|
+
__name(isFileSourcedEnvKey, "isFileSourcedEnvKey");
|
|
142
157
|
function getHomeEnvFallbackVars(onReadError) {
|
|
143
158
|
const globalQwenDir = Storage.getGlobalQwenDir();
|
|
144
159
|
const candidates = [path.join(globalQwenDir, ".env")];
|
|
@@ -517,6 +532,7 @@ export {
|
|
|
517
532
|
preResolveHomeEnvOverrides,
|
|
518
533
|
resetHomeEnvBootstrapForTesting,
|
|
519
534
|
resetEnvironmentTrackingForTesting,
|
|
535
|
+
isFileSourcedEnvKey,
|
|
520
536
|
getHomeEnvFallbackVars,
|
|
521
537
|
findEnvFiles,
|
|
522
538
|
setUpCloudShellEnvironment,
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
wrapForMultiplexer
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-ZWKGZB2K.js";
|
|
6
6
|
import {
|
|
7
7
|
createDebugLogger
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-2NNTE2ED.js";
|
|
9
9
|
import {
|
|
10
10
|
init_esbuild_shims
|
|
11
11
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -5,18 +5,18 @@ import {
|
|
|
5
5
|
} from "./chunk-KW7NOTN6.js";
|
|
6
6
|
import {
|
|
7
7
|
DEFAULT_OPENAI_LOG_RETENTION_DAYS
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-BDHLBR46.js";
|
|
9
9
|
import {
|
|
10
10
|
resolveOpenAILogDir
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-OX44MOAN.js";
|
|
12
12
|
import {
|
|
13
13
|
FILE_HISTORY_DIR,
|
|
14
14
|
getSubagentsRootDir
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-XYX474JQ.js";
|
|
16
16
|
import {
|
|
17
17
|
Storage,
|
|
18
18
|
createDebugLogger
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-2NNTE2ED.js";
|
|
20
20
|
import {
|
|
21
21
|
init_esbuild_shims
|
|
22
22
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -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
|
}
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
|
-
import {
|
|
4
|
-
t
|
|
5
|
-
} from "./chunk-E6BJFSLJ.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";
|