@qwen-code/qwen-code 0.21.5 → 0.21.6-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/model-providers.md +8 -8
- package/bundled/qc-helper/docs/configuration/settings.md +15 -15
- package/bundled/qc-helper/docs/features/code-review.md +2 -0
- package/bundled/qc-helper/docs/features/headless.md +31 -0
- package/bundled/qc-helper/docs/qwen-serve.md +75 -0
- package/bundled/review/SKILL.md +59 -52
- package/chunks/{MaxSizedBox-2MWU5JYB.js → MaxSizedBox-A3UYJS6B.js} +8 -7
- package/chunks/{StandaloneSessionPicker-B6MI5NTB.js → StandaloneSessionPicker-NGLY26I4.js} +21 -20
- package/chunks/{acpAgent-MRPYN6FH.js → acpAgent-V54T2EEL.js} +215 -63
- package/chunks/{agent-NAOXNW4I.js → agent-2P53VL2L.js} +8 -7
- package/chunks/{agent-headless-L4PPVFKW.js → agent-headless-6X4GCFRD.js} +8 -7
- package/chunks/{bridge-LHXGYNCO.js → bridge-TCFMLKHR.js} +12 -10
- package/chunks/{channel-settings-store-QB54TLYE.js → channel-settings-store-B4HNMNQV.js} +13 -12
- package/chunks/{channel-worker-group-NDG4WOOZ.js → channel-worker-group-SVGPDH2C.js} +3 -2
- package/chunks/{channel-worker-manager-ZCW6UW34.js → channel-worker-manager-72ZK2GTS.js} +3 -2
- package/chunks/{channel-worker-supervisor-ATGFTZRN.js → channel-worker-supervisor-NUEDVHX4.js} +2 -1
- package/chunks/{chunk-UWSXFI6E.js → chunk-2U7GPHA6.js} +6 -2
- package/chunks/{chunk-CIUUYB23.js → chunk-3DTM3RPU.js} +1 -1
- package/chunks/{chunk-7MFQLOHZ.js → chunk-3PRJYMXC.js} +1 -1
- package/chunks/{chunk-K6VEL5KP.js → chunk-3ZRS2XNY.js} +1 -1
- package/chunks/{chunk-GBY3ODW7.js → chunk-4E5PO6R7.js} +3 -3
- package/chunks/{chunk-KH2BIJ4H.js → chunk-4T6QMNX2.js} +89 -6
- package/chunks/{chunk-K64OI7S7.js → chunk-546CDN6D.js} +1 -1
- package/chunks/{chunk-J7I2BZHS.js → chunk-5CDI4UOY.js} +23 -6
- package/chunks/{chunk-7W5KOBYU.js → chunk-6D6V55ZQ.js} +1 -1
- package/chunks/{chunk-WU5NBSLD.js → chunk-6KEN3RIC.js} +3 -3
- package/chunks/{chunk-FEUXV3DC.js → chunk-6KZP75GT.js} +1 -1
- package/chunks/{chunk-B3EBIZUY.js → chunk-72DZPDH4.js} +1 -1
- package/chunks/{chunk-TCOJPG2P.js → chunk-7FUVSN4D.js} +1 -1
- package/chunks/{chunk-EXHQZBVJ.js → chunk-AFZTZLFB.js} +2 -2
- package/chunks/{chunk-AEWOKOJY.js → chunk-AU3XNTMV.js} +1 -1
- package/chunks/{chunk-C6ARWPCG.js → chunk-AVDEBBMI.js} +2 -2
- package/chunks/chunk-BKHCW2BI.js +41 -0
- package/chunks/{chunk-ZLGPHA34.js → chunk-BU4BRCPX.js} +4 -4
- package/chunks/{chunk-3GOCVBYR.js → chunk-C4GRKMUL.js} +4 -4
- package/chunks/{chunk-VOA2UPZM.js → chunk-CDHNGCJI.js} +3 -3
- package/chunks/{chunk-3H5RFLTS.js → chunk-CJBRIJ7W.js} +1 -1
- package/chunks/{chunk-D7QAZ5DF.js → chunk-CXYBX4AL.js} +1 -1
- package/chunks/{chunk-GEP54CHX.js → chunk-DBIEZC7T.js} +3 -3
- package/chunks/{chunk-BWLUCN35.js → chunk-DG563ZCS.js} +2 -2
- package/chunks/{chunk-YLL3SC5S.js → chunk-DOA7MCDY.js} +167 -99
- package/chunks/{chunk-OIGB253L.js → chunk-DOICUTPO.js} +7 -7
- package/chunks/{chunk-VJPF6GF2.js → chunk-EHMN6SEG.js} +2 -2
- package/chunks/{chunk-YO4JI7B4.js → chunk-EKWNNQQD.js} +4 -4
- package/chunks/{chunk-B2RBYP7Z.js → chunk-FDV3CXTD.js} +2 -2
- package/chunks/{chunk-LMNM37OE.js → chunk-HKNSU4WX.js} +1 -1
- package/chunks/{chunk-4LLUH3A7.js → chunk-HU5TUALO.js} +95 -8
- package/chunks/{chunk-G2UXFO2B.js → chunk-IISDPZ5X.js} +1 -1
- package/chunks/{chunk-LYPXNRBX.js → chunk-IKXE3AAC.js} +1 -1
- package/chunks/{chunk-TJ56V3AR.js → chunk-MFBUJMQ3.js} +3 -3
- package/chunks/{chunk-SQTA6PAY.js → chunk-MVLM6PJK.js} +1 -1
- package/chunks/{chunk-4NEBUDWS.js → chunk-N47ZM2KI.js} +9 -9
- package/chunks/{chunk-5HWAJ4BK.js → chunk-NAYPZ72V.js} +1 -1
- package/chunks/{chunk-IZ2CMEYO.js → chunk-NKST54XA.js} +1 -1
- package/chunks/{chunk-IK3RYLAD.js → chunk-NYZAL2W2.js} +3 -3
- package/chunks/{chunk-ZPGMDT4S.js → chunk-O656RSMC.js} +19 -92
- package/chunks/{chunk-XD2PNH3K.js → chunk-P7LKADIT.js} +5 -5
- package/chunks/{chunk-JDNWIXHJ.js → chunk-PQTK2FVO.js} +3 -3
- package/chunks/{chunk-LSYVASZS.js → chunk-QG2ACINA.js} +1 -1
- package/chunks/{chunk-IWYXZAGT.js → chunk-QWUYFMAR.js} +24 -24
- package/chunks/{chunk-YMUZQ3MQ.js → chunk-RTWF7FF7.js} +3 -3
- package/chunks/{chunk-5XNO4AW7.js → chunk-SPUDIAHX.js} +11 -11
- package/chunks/{chunk-7M2RLFNX.js → chunk-SQ3ZJOYL.js} +11 -11
- package/chunks/{chunk-SJMCYCUQ.js → chunk-T4XY5CT4.js} +4 -4
- package/chunks/{chunk-2JBETW4S.js → chunk-TVFC3XF5.js} +5 -5
- package/chunks/{chunk-NLQIEY6W.js → chunk-VDLXPEI5.js} +3 -3
- package/chunks/{chunk-Q2V4AOQL.js → chunk-WAOLM6SQ.js} +1 -1
- package/chunks/{chunk-N3RERU5N.js → chunk-WIPQR44Y.js} +3 -3
- package/chunks/{chunk-PDDYAXL2.js → chunk-WIRAPZ62.js} +7 -0
- package/chunks/chunk-WOJZWRAZ.js +123 -0
- package/chunks/{chunk-SVIEVA3L.js → chunk-WPKIU4PA.js} +28 -3
- package/chunks/{chunk-K2ETEWG6.js → chunk-WVRJKSIG.js} +1 -1
- package/chunks/{chunk-WTM5QONI.js → chunk-WXS647W5.js} +2 -2
- package/chunks/{chunk-4O6HLCOF.js → chunk-X6DV3WKN.js} +1 -1
- package/chunks/{chunk-OGAARVN7.js → chunk-XKTCA6BW.js} +3 -3
- package/chunks/{chunk-FHPKHXHT.js → chunk-XNZBXQCG.js} +4 -0
- package/chunks/{chunk-GP4IMBX5.js → chunk-XOZ2R6XI.js} +529 -259
- package/chunks/{chunk-IWGMDSC3.js → chunk-XSGQKR37.js} +4 -4
- package/chunks/{chunk-ZLJQIGCH.js → chunk-XZCMQUOF.js} +8 -0
- package/chunks/{chunk-P3SLTSNY.js → chunk-Y5HIDFKZ.js} +4 -4
- package/chunks/{chunk-RM3F46UT.js → chunk-YUVTZ4UH.js} +6 -6
- package/chunks/{chunk-3P4GP4S2.js → chunk-Z5S6KH2B.js} +1 -1
- package/chunks/{chunk-4NNR24EP.js → chunk-ZH7G3A4U.js} +3 -3
- package/chunks/{chunk-CAX76R46.js → chunk-ZQL73PPE.js} +1 -1
- package/chunks/{computer-use-XDOGP2KA.js → computer-use-GTOP2CVH.js} +8 -7
- package/chunks/{config-utils-E3ZQTHGM.js → config-utils-LIRO7NSU.js} +2 -2
- package/chunks/{contextCommand-N3LQDCYJ.js → contextCommand-K6T6RRF3.js} +10 -9
- package/chunks/{core-runtime-STAFP45W.js → core-runtime-D2626QQU.js} +8 -7
- package/chunks/{create-sub-session-2B3JENWD.js → create-sub-session-MWUWNBM6.js} +8 -7
- package/chunks/{daemon-status-provider-PPAH3ATF.js → daemon-status-provider-2EHRZZVF.js} +16 -14
- package/chunks/{daemon-trust-policy-X6XL3MB4.js → daemon-trust-policy-B3EPDJDR.js} +13 -12
- package/chunks/{daemon-trust-policy-monitor-M5LBL2HD.js → daemon-trust-policy-monitor-MFM5X26G.js} +13 -12
- package/chunks/{deferred-core-runtime-O54YPTBU.js → deferred-core-runtime-KXN7HLN7.js} +8 -7
- package/chunks/{earlyInputCapture-CBIT2RGT.js → earlyInputCapture-WUNYYFOS.js} +8 -7
- package/chunks/{edit-KW2TOC6A.js → edit-DMFCBP2D.js} +8 -7
- package/chunks/{enter-worktree-YL34NEU5.js → enter-worktree-5SVBCXFC.js} +8 -7
- package/chunks/{enterPlanMode-JFJTDASQ.js → enterPlanMode-QUIZFQ4M.js} +8 -7
- package/chunks/{environment-IATU5GXG.js → environment-U6QP23VJ.js} +10 -9
- package/chunks/{errors-SAVRDE7Q.js → errors-GZWFA6ON.js} +10 -9
- package/chunks/{exit-worktree-5M43QPBB.js → exit-worktree-FUB44KAF.js} +8 -7
- package/chunks/{exitPlanMode-W4EICZ4N.js → exitPlanMode-XSHHYR73.js} +8 -7
- package/chunks/external-tool-guard-provider-5HTGOPGU.js +273 -0
- package/chunks/{fast-path-YQJPIKMP.js → fast-path-JHQJSIMZ.js} +5 -5
- package/chunks/{gemini-FUF5SSPR.js → gemini-O44ETOKT.js} +61 -46
- package/chunks/{geminiContentGenerator-LLLZBOUG.js → geminiContentGenerator-TTM4TZJM.js} +1 -1
- package/chunks/{glob-LJFFMN4D.js → glob-YECOWTRW.js} +8 -7
- package/chunks/{grep-Q64EAM73.js → grep-BZO4LOTA.js} +8 -7
- package/chunks/{handleAutoUpdate-QBMPRTSQ.js → handleAutoUpdate-TOO52D6H.js} +12 -11
- package/chunks/{i18n-LDUW5DMN.js → i18n-ARJYXZQ5.js} +9 -8
- package/chunks/{image-gen-G7RLG3KR.js → image-gen-J6Q2YBEU.js} +1 -1
- package/chunks/{initializer-74A7DMMD.js → initializer-CEZ4RPQV.js} +13 -12
- package/chunks/{installationInfo-OFDYLDFD.js → installationInfo-AEGIIQAT.js} +9 -8
- package/chunks/{list-JA2EWRHJ.js → list-7XLPV5GC.js} +16 -15
- package/chunks/{loadedSettingsAdapter-2GNJOQ3L.js → loadedSettingsAdapter-YK5SBHOT.js} +13 -12
- package/chunks/{loggingContentGenerator-B6B5EGB3.js → loggingContentGenerator-I7QDXS43.js} +4 -3
- package/chunks/{managed-npm-update-4YZHLUER.js → managed-npm-update-YSL7PA7G.js} +9 -8
- package/chunks/{mcp-LLK5YJVH.js → mcp-RKFQZXP6.js} +13 -12
- package/chunks/{monitor-NYJPAWVP.js → monitor-QHHJIKGL.js} +8 -7
- package/chunks/{nonInteractiveCli-HZBBBDJD.js → nonInteractiveCli-XEBIE7MG.js} +41 -39
- package/chunks/{notebook-edit-LLM6UXFX.js → notebook-edit-SG7X2EQA.js} +8 -7
- package/chunks/{openaiContentGenerator-2AEXDN55.js → openaiContentGenerator-63CVR33K.js} +5 -4
- package/chunks/{pidfile-3JUWX7G2.js → pidfile-I3CXJGQD.js} +8 -7
- package/chunks/{processUtils-JLLRVZHT.js → processUtils-LJ3DSANX.js} +2 -2
- package/chunks/{qwenContentGenerator-2FESCF27.js → qwenContentGenerator-JINBVCH6.js} +9 -8
- package/chunks/{qwenOAuth2-2KKPYA5J.js → qwenOAuth2-SY2O3NRR.js} +1 -1
- package/chunks/{read-file-5GVXLY74.js → read-file-PGTXF25I.js} +3 -2
- package/chunks/{record-artifact-L3BAHQFN.js → record-artifact-E6AWQU2Z.js} +1 -1
- package/chunks/{resumeHistoryUtils-Z4OFBXPM.js → resumeHistoryUtils-FB2NFVZ2.js} +11 -10
- package/chunks/{ripGrep-TKOJTIAB.js → ripGrep-IY3KGPM6.js} +8 -7
- package/chunks/{run-qwen-serve-K5W6MM6M.js → run-qwen-serve-UYEMGPKA.js} +72 -36
- package/chunks/{runtime-IADXMRCY.js → runtime-CG3BKRFE.js} +16 -15
- package/chunks/{scheduler-T7AV37LD.js → scheduler-VFUVGDE5.js} +8 -7
- package/chunks/{serve-ROEGMS3I.js → serve-ZCCQ2G2L.js} +14 -12
- package/chunks/{server-NGXMRODI.js → server-WS7LWXPP.js} +161 -54
- package/chunks/{session-RCDLDJA4.js → session-IQLCT32T.js} +42 -40
- package/chunks/{settings-E6H3AURD.js → settings-NX4EUIE6.js} +12 -11
- package/chunks/{shell-RHGGJ6BE.js → shell-THDYM4CS.js} +8 -7
- package/chunks/{skill-GQ7PBS25.js → skill-OXXZBNQB.js} +3 -2
- package/chunks/{skill-settings-E2F7OCBL.js → skill-settings-T3JZ33T2.js} +12 -11
- package/chunks/{spawnChannel-Q2IQBHME.js → spawnChannel-COLJMSA7.js} +11 -9
- package/chunks/{standalone-update-NYYZEHLD.js → standalone-update-ICW7H5IF.js} +10 -9
- package/chunks/{startInteractiveUI-IX6I3Y2Z.js → startInteractiveUI-6BDRXSMF.js} +60 -58
- package/chunks/{team-create-UTRVUEDA.js → team-create-BCSMDK4Z.js} +8 -7
- package/chunks/{team-plan-approval-YZNB4U5U.js → team-plan-approval-B5YRLJFV.js} +8 -7
- package/chunks/{terminal-image-renderer-QRSCS2BE.js → terminal-image-renderer-PW6Z6VFY.js} +8 -7
- package/chunks/{theme-manager-EKZBY34I.js → theme-manager-CMVKD2JH.js} +8 -7
- package/chunks/{tool-search-N2R7LVMC.js → tool-search-SQTUSG6P.js} +3 -2
- package/chunks/{total-session-admission-HBIYARPO.js → total-session-admission-XAXOSE46.js} +12 -10
- package/chunks/{trustedFolders-ZQLYRCSY.js → trustedFolders-Z2UAEG2V.js} +9 -8
- package/chunks/{update-relaunch-PJWXMPCR.js → update-relaunch-JBLI6LJF.js} +5 -5
- package/chunks/{updateCheck-ZXRCGY66.js → updateCheck-FDAVGOFT.js} +11 -10
- package/chunks/{useAutoAcceptIndicator-ZYQW5SGJ.js → useAutoAcceptIndicator-PDZFIYRM.js} +14 -13
- package/chunks/{validateNonInterActiveAuth-M7J7OTRH.js → validateNonInterActiveAuth-Q4763ONQ.js} +38 -36
- package/chunks/{version-2AOHMPK3.js → version-C7MPCGWD.js} +1 -1
- package/chunks/{web-fetch-DS34CJ3R.js → web-fetch-L7RAPOJB.js} +3 -2
- package/chunks/{web-search-ITFPD7V4.js → web-search-IDOYUOWX.js} +4 -3
- package/chunks/{workflow-LZQ4PGNS.js → workflow-HXURUJB5.js} +9 -8
- package/chunks/{workspace-providers-status-ZPTLKOBM.js → workspace-providers-status-JZ3GPWNU.js} +16 -15
- package/chunks/{workspace-registration-store-OTFKSGG7.js → workspace-registration-store-SM2PWB6L.js} +1 -1
- package/chunks/{workspace-registry-YZ3OXPHP.js → workspace-registry-6W4ES7BJ.js} +12 -10
- package/chunks/{workspace-service-OCZXOOSQ.js → workspace-service-V47ZFJRX.js} +17 -16
- package/chunks/{workspace-skills-status-K2ALGUCD.js → workspace-skills-status-6ZQ45XKA.js} +14 -13
- package/chunks/{workspace-trust-reconciler-KMRZISJP.js → workspace-trust-reconciler-6V25LMCN.js} +17 -15
- package/chunks/{write-file-AWBI4GJS.js → write-file-H2QOF25K.js} +8 -7
- package/chunks/{zoom-image-NHKN6F77.js → zoom-image-JTUSS43N.js} +3 -2
- package/cli-entry.js +14 -0
- package/cli.js +16 -12
- package/package.json +3 -3
- package/web-shell/assets/{arc-Dpg66jw7.js → arc-DtI1rZcQ.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-BJ4FIBxN.js → architectureDiagram-3BPJPVTR-BPZwSVct.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-VXmYdtYT.js → blockDiagram-GPEHLZMM-BIQ03j4C.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-BNLDb8FE.js → c4Diagram-AAUBKEIU-CB0RyFGm.js} +1 -1
- package/web-shell/assets/channel-vfbVFuM1.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-DR5yHxr0.js → chunk-2J33WTMH-B3WoS-4H.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-Czkq8UZU.js → chunk-4BX2VUAB-C98xYZ1X.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-DugUgM6s.js → chunk-55IACEB6-CbTIWRwQ.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-Dw6quA1K.js → chunk-727SXJPM-DWGnKTPu.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-BoVYOTTz.js → chunk-AQP2D5EJ-4__QyCEX.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4--Amcse-j.js → chunk-FMBD7UC4-DFtG1YCW.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-ajaEYAC8.js → chunk-ND2GUHAM-rvAhW51N.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-CUNDZ7im.js → chunk-QZHKN3VN-DfiU9pwZ.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-Cvr8atq3.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Cvr8atq3.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-BnfkD-m1.js → cose-bilkent-S5V4N54A-Cc4EIdxu.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-BuUdFk7Z.js → dagre-BM42HDAG-CZNj4dGW.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-B2ZXxoab.js → diagram-2AECGRRQ-D5tiqQCr.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-BsgOICzM.js → diagram-5GNKFQAL-pwzw0jVO.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-DTTjG6U-.js → diagram-KO2AKTUF-4CWiM00x.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-temLf1x7.js → diagram-LMA3HP47-Dd7rc7Qf.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-CRFjScs2.js → diagram-OG6HWLK6-_vzV52ml.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-D4oaY-rQ.js → erDiagram-TEJ5UH35-CqbE2bx_.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-BqG8B49b.js → flowDiagram-I6XJVG4X-CaxNr7w4.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-DffQBdd5.js → ganttDiagram-6RSMTGT7-AGjrtfUA.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-CMDPfseF.js → gitGraphDiagram-PVQCEYII-ADG2zSkc.js} +1 -1
- package/web-shell/assets/{index-qTQR_smP.js → index-BOryKCqt.js} +1 -1
- package/web-shell/assets/{index-CaucmEO_.css → index-Cb1LjsCv.css} +1 -1
- package/web-shell/assets/{index-2F4RsNzd.js → index-CvJDaIy8.js} +311 -311
- package/web-shell/assets/{infoDiagram-5YYISTIA-Cn3T83MA.js → infoDiagram-5YYISTIA-CE3B_IoZ.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-ijFs7e25.js → ishikawaDiagram-YF4QCWOH-CN-Frhoi.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-CINTv8VB.js → journeyDiagram-JHISSGLW-CGgezS93.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-CMGRZCxx.js → kanban-definition-UN3LZRKU-BqWijky5.js} +1 -1
- package/web-shell/assets/{linear-Co-2_37d.js → linear-D8sfpZf6.js} +1 -1
- package/web-shell/assets/{mermaid.core-DijbyaN5.js → mermaid.core-3PA4QrzM.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-k_sDYDPZ.js → mindmap-definition-RKZ34NQL-D9QxwiCY.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-CG-oz8V3.js → pieDiagram-4H26LBE5-Bioaf6uE.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-Baq7HIG2.js → quadrantDiagram-W4KKPZXB-DBb2AS73.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-CDM3ZvBt.js → requirementDiagram-4Y6WPE33-DXOvZ3KB.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-C2dJbWKN.js → sankeyDiagram-5OEKKPKP-D9qg09Dm.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-Cf1_h59p.js → sequenceDiagram-3UESZ5HK-DSAUIfpw.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-CI5clUEc.js → stateDiagram-AJRCARHV-BPZkzfQ3.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DInOqnhZ.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-B2O8cAZX.js → timeline-definition-PNZ67QCA-UDaQp9sP.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-BLsJ_h9s.js → vennDiagram-CIIHVFJN-2ouhAnHO.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-BlPU4FTA.js → wardley-L42UT6IY-Cq_WEvTK.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-D_U-RdU4.js → wardleyDiagram-YWT4CUSO-Dt24aXOM.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-BynXGSTl.js → xychartDiagram-2RQKCTM6-A5Xk2WCH.js} +1 -1
- package/web-shell/index.html +2 -2
- package/bundled/review/DESIGN.md +0 -724
- package/web-shell/assets/channel-Bd9wOnaA.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-XhCT8FE3.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-XhCT8FE3.js +0 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BDc8asKD.js +0 -1
- package/chunks/{channel-management-service-UHX56NBO.js → channel-management-service-5XPPTWUQ.js} +3 -3
- package/chunks/{chunk-LEZFUYPM.js → chunk-7GYP5COR.js} +3 -3
|
@@ -0,0 +1,273 @@
|
|
|
1
|
+
// Force strict mode and setup for ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
EXTERNAL_TOOL_GUARD_TOKEN_ENV,
|
|
5
|
+
containsUnsafeExternalToolGuardControlCharacter,
|
|
6
|
+
isValidExternalToolGuardDenialReason
|
|
7
|
+
} from "./chunk-BKHCW2BI.js";
|
|
8
|
+
import {
|
|
9
|
+
init_esbuild_shims
|
|
10
|
+
} from "./chunk-5O2XNYP6.js";
|
|
11
|
+
import {
|
|
12
|
+
__name
|
|
13
|
+
} from "./chunk-J2S4EL5Y.js";
|
|
14
|
+
|
|
15
|
+
// packages/cli/src/serve/external-tool-guard-provider.ts
|
|
16
|
+
init_esbuild_shims();
|
|
17
|
+
import { randomUUID } from "node:crypto";
|
|
18
|
+
import * as http from "node:http";
|
|
19
|
+
import * as https from "node:https";
|
|
20
|
+
var EXTERNAL_TOOL_GUARD_PROTOCOL_VERSION = 1;
|
|
21
|
+
var DEFAULT_EXTERNAL_TOOL_GUARD_TIMEOUT_MS = 3e3;
|
|
22
|
+
var MIN_EXTERNAL_TOOL_GUARD_TIMEOUT_MS = 100;
|
|
23
|
+
var MAX_EXTERNAL_TOOL_GUARD_TIMEOUT_MS = 3e4;
|
|
24
|
+
var MAX_RESPONSE_BYTES = 64 * 1024;
|
|
25
|
+
var MAX_REQUEST_BYTES = 1024 * 1024;
|
|
26
|
+
function isRecord(value) {
|
|
27
|
+
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
28
|
+
}
|
|
29
|
+
__name(isRecord, "isRecord");
|
|
30
|
+
function hasExactKeys(value, required, optional = []) {
|
|
31
|
+
const keys = Object.keys(value);
|
|
32
|
+
const allowed = /* @__PURE__ */ new Set([...required, ...optional]);
|
|
33
|
+
return required.every((key) => Object.hasOwn(value, key)) && keys.every((key) => allowed.has(key));
|
|
34
|
+
}
|
|
35
|
+
__name(hasExactKeys, "hasExactKeys");
|
|
36
|
+
function normalizeEndpoint(raw) {
|
|
37
|
+
if (typeof raw !== "string") {
|
|
38
|
+
throw new TypeError(
|
|
39
|
+
"Invalid external tool guard endpoint: expected an absolute loopback HTTP(S) origin."
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
let endpoint;
|
|
43
|
+
try {
|
|
44
|
+
endpoint = new URL(raw);
|
|
45
|
+
} catch {
|
|
46
|
+
throw new TypeError(
|
|
47
|
+
"Invalid external tool guard endpoint: expected an absolute loopback HTTP(S) origin."
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
const hostname = endpoint.hostname.toLowerCase();
|
|
51
|
+
if (endpoint.protocol !== "http:" && endpoint.protocol !== "https:" || hostname !== "127.0.0.1" && hostname !== "localhost" && hostname !== "::1" && hostname !== "[::1]" || endpoint.username !== "" || endpoint.password !== "" || endpoint.pathname !== "/" || endpoint.search !== "" || endpoint.hash !== "") {
|
|
52
|
+
throw new TypeError(
|
|
53
|
+
"Invalid external tool guard endpoint: expected an origin-only loopback HTTP(S) URL."
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
return endpoint;
|
|
57
|
+
}
|
|
58
|
+
__name(normalizeEndpoint, "normalizeEndpoint");
|
|
59
|
+
function normalizeToken(raw) {
|
|
60
|
+
if (typeof raw !== "string" || containsUnsafeExternalToolGuardControlCharacter(raw)) {
|
|
61
|
+
throw new TypeError(
|
|
62
|
+
`Invalid ${EXTERNAL_TOOL_GUARD_TOKEN_ENV}: expected a non-blank token without control characters.`
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
const token = raw.trim();
|
|
66
|
+
if (token.length === 0 || token.length > 8192) {
|
|
67
|
+
throw new TypeError(
|
|
68
|
+
`Invalid ${EXTERNAL_TOOL_GUARD_TOKEN_ENV}: expected a non-blank token without control characters.`
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
return token;
|
|
72
|
+
}
|
|
73
|
+
__name(normalizeToken, "normalizeToken");
|
|
74
|
+
function normalizeTimeout(timeoutMs) {
|
|
75
|
+
const value = timeoutMs ?? DEFAULT_EXTERNAL_TOOL_GUARD_TIMEOUT_MS;
|
|
76
|
+
if (typeof value !== "number" || !Number.isSafeInteger(value) || value < MIN_EXTERNAL_TOOL_GUARD_TIMEOUT_MS || value > MAX_EXTERNAL_TOOL_GUARD_TIMEOUT_MS) {
|
|
77
|
+
throw new TypeError(
|
|
78
|
+
`Invalid external tool guard timeout: expected an integer in [${MIN_EXTERNAL_TOOL_GUARD_TIMEOUT_MS}, ${MAX_EXTERNAL_TOOL_GUARD_TIMEOUT_MS}] ms.`
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
return value;
|
|
82
|
+
}
|
|
83
|
+
__name(normalizeTimeout, "normalizeTimeout");
|
|
84
|
+
function validateHandshakeResponse(value, nonce) {
|
|
85
|
+
if (!isRecord(value) || !hasExactKeys(value, ["protocolVersion", "nonce", "capabilities"]) || value["protocolVersion"] !== EXTERNAL_TOOL_GUARD_PROTOCOL_VERSION || value["nonce"] !== nonce || !isRecord(value["capabilities"]) || !hasExactKeys(value["capabilities"], ["prepare"]) || value["capabilities"]["prepare"] !== true) {
|
|
86
|
+
throw new Error("External tool guard handshake response is incompatible.");
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
__name(validateHandshakeResponse, "validateHandshakeResponse");
|
|
90
|
+
function validatePrepareResponse(value, requestId) {
|
|
91
|
+
if (!isRecord(value) || !hasExactKeys(
|
|
92
|
+
value,
|
|
93
|
+
["protocolVersion", "requestId", "allowed"],
|
|
94
|
+
["reason"]
|
|
95
|
+
) || value["protocolVersion"] !== EXTERNAL_TOOL_GUARD_PROTOCOL_VERSION || value["requestId"] !== requestId || typeof value["allowed"] !== "boolean") {
|
|
96
|
+
throw new Error("External tool guard prepare response is invalid.");
|
|
97
|
+
}
|
|
98
|
+
if (value["allowed"]) {
|
|
99
|
+
if (Object.hasOwn(value, "reason")) {
|
|
100
|
+
throw new Error("External tool guard allow response contains a reason.");
|
|
101
|
+
}
|
|
102
|
+
return { allowed: true };
|
|
103
|
+
}
|
|
104
|
+
if (!Object.hasOwn(value, "reason")) return { allowed: false };
|
|
105
|
+
const reason = value["reason"];
|
|
106
|
+
if (!isValidExternalToolGuardDenialReason(reason)) {
|
|
107
|
+
throw new Error(
|
|
108
|
+
"External tool guard denial response contains an unsafe reason."
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
return { allowed: false, reason };
|
|
112
|
+
}
|
|
113
|
+
__name(validatePrepareResponse, "validatePrepareResponse");
|
|
114
|
+
var RequiredExternalToolGuard = class {
|
|
115
|
+
static {
|
|
116
|
+
__name(this, "RequiredExternalToolGuard");
|
|
117
|
+
}
|
|
118
|
+
endpoint;
|
|
119
|
+
token;
|
|
120
|
+
timeoutMs;
|
|
121
|
+
initialized = false;
|
|
122
|
+
constructor(options) {
|
|
123
|
+
this.endpoint = normalizeEndpoint(options.endpoint);
|
|
124
|
+
this.token = normalizeToken(options.token);
|
|
125
|
+
this.timeoutMs = normalizeTimeout(options.timeoutMs);
|
|
126
|
+
}
|
|
127
|
+
async initialize() {
|
|
128
|
+
const nonce = randomUUID();
|
|
129
|
+
const response = await this.request("/v1/handshake", {
|
|
130
|
+
protocolVersion: EXTERNAL_TOOL_GUARD_PROTOCOL_VERSION,
|
|
131
|
+
nonce,
|
|
132
|
+
client: "qwen-code"
|
|
133
|
+
});
|
|
134
|
+
validateHandshakeResponse(response, nonce);
|
|
135
|
+
this.initialized = true;
|
|
136
|
+
}
|
|
137
|
+
prepare = /* @__PURE__ */ __name(async (request) => {
|
|
138
|
+
if (!this.initialized) {
|
|
139
|
+
throw new Error("External tool guard has not completed its handshake.");
|
|
140
|
+
}
|
|
141
|
+
const requestId = randomUUID();
|
|
142
|
+
const response = await this.request("/v1/prepare", {
|
|
143
|
+
protocolVersion: EXTERNAL_TOOL_GUARD_PROTOCOL_VERSION,
|
|
144
|
+
requestId,
|
|
145
|
+
sessionId: request.sessionId,
|
|
146
|
+
promptId: request.promptId,
|
|
147
|
+
toolCallId: request.toolCallId,
|
|
148
|
+
toolName: request.toolName,
|
|
149
|
+
arguments: request.arguments
|
|
150
|
+
});
|
|
151
|
+
return validatePrepareResponse(response, requestId);
|
|
152
|
+
}, "prepare");
|
|
153
|
+
request(pathname, value) {
|
|
154
|
+
let body;
|
|
155
|
+
try {
|
|
156
|
+
body = Buffer.from(JSON.stringify(value), "utf8");
|
|
157
|
+
} catch {
|
|
158
|
+
return Promise.reject(
|
|
159
|
+
new Error("External tool guard request is not JSON serializable.")
|
|
160
|
+
);
|
|
161
|
+
}
|
|
162
|
+
if (body.byteLength > MAX_REQUEST_BYTES) {
|
|
163
|
+
return Promise.reject(
|
|
164
|
+
new Error("External tool guard request exceeds the size limit.")
|
|
165
|
+
);
|
|
166
|
+
}
|
|
167
|
+
const transport = this.endpoint.protocol === "https:" ? https : http;
|
|
168
|
+
return new Promise((resolve, reject) => {
|
|
169
|
+
let settled = false;
|
|
170
|
+
const finish = /* @__PURE__ */ __name((error, result) => {
|
|
171
|
+
if (settled) return;
|
|
172
|
+
settled = true;
|
|
173
|
+
clearTimeout(timer);
|
|
174
|
+
if (error) reject(error);
|
|
175
|
+
else resolve(result);
|
|
176
|
+
}, "finish");
|
|
177
|
+
const hostname = this.endpoint.hostname;
|
|
178
|
+
const localhost = hostname.toLowerCase() === "localhost";
|
|
179
|
+
const request = transport.request(
|
|
180
|
+
{
|
|
181
|
+
protocol: this.endpoint.protocol,
|
|
182
|
+
hostname: localhost ? "127.0.0.1" : hostname.startsWith("[") && hostname.endsWith("]") ? hostname.slice(1, -1) : hostname,
|
|
183
|
+
port: this.endpoint.port || void 0,
|
|
184
|
+
// A security boundary must not inherit a process-global Agent that
|
|
185
|
+
// an embedding or dependency could have replaced with proxy logic.
|
|
186
|
+
agent: false,
|
|
187
|
+
...localhost && this.endpoint.protocol === "https:" ? { servername: "localhost" } : {},
|
|
188
|
+
method: "POST",
|
|
189
|
+
path: pathname,
|
|
190
|
+
headers: {
|
|
191
|
+
authorization: `Bearer ${this.token}`,
|
|
192
|
+
"content-type": "application/json",
|
|
193
|
+
accept: "application/json",
|
|
194
|
+
host: this.endpoint.host,
|
|
195
|
+
"content-length": String(body.byteLength)
|
|
196
|
+
}
|
|
197
|
+
},
|
|
198
|
+
(response) => {
|
|
199
|
+
const chunks = [];
|
|
200
|
+
let received = 0;
|
|
201
|
+
response.on("data", (chunk) => {
|
|
202
|
+
const bytes = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk, "utf8");
|
|
203
|
+
received += bytes.byteLength;
|
|
204
|
+
if (received > MAX_RESPONSE_BYTES) {
|
|
205
|
+
finish(
|
|
206
|
+
new Error(
|
|
207
|
+
"External tool guard response exceeds the size limit."
|
|
208
|
+
)
|
|
209
|
+
);
|
|
210
|
+
response.destroy();
|
|
211
|
+
return;
|
|
212
|
+
}
|
|
213
|
+
chunks.push(bytes);
|
|
214
|
+
});
|
|
215
|
+
response.on("end", () => {
|
|
216
|
+
if (response.statusCode !== 200) {
|
|
217
|
+
finish(
|
|
218
|
+
new Error(
|
|
219
|
+
`External tool guard returned HTTP ${response.statusCode ?? "unknown"}.`
|
|
220
|
+
)
|
|
221
|
+
);
|
|
222
|
+
return;
|
|
223
|
+
}
|
|
224
|
+
const contentType = response.headers["content-type"];
|
|
225
|
+
if (typeof contentType !== "string" || !/^application\/json(?:\s*;|$)/iu.test(contentType)) {
|
|
226
|
+
finish(
|
|
227
|
+
new Error(
|
|
228
|
+
"External tool guard returned a non-JSON content type."
|
|
229
|
+
)
|
|
230
|
+
);
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
try {
|
|
234
|
+
finish(
|
|
235
|
+
void 0,
|
|
236
|
+
JSON.parse(Buffer.concat(chunks).toString("utf8"))
|
|
237
|
+
);
|
|
238
|
+
} catch {
|
|
239
|
+
finish(new Error("External tool guard returned malformed JSON."));
|
|
240
|
+
}
|
|
241
|
+
});
|
|
242
|
+
response.on("error", () => {
|
|
243
|
+
finish(new Error("External tool guard response failed."));
|
|
244
|
+
});
|
|
245
|
+
response.on("aborted", () => {
|
|
246
|
+
finish(new Error("External tool guard response was aborted."));
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
);
|
|
250
|
+
const timer = setTimeout(() => {
|
|
251
|
+
request.destroy();
|
|
252
|
+
finish(new Error("External tool guard request timed out."));
|
|
253
|
+
}, this.timeoutMs);
|
|
254
|
+
timer.unref();
|
|
255
|
+
request.on("error", () => {
|
|
256
|
+
finish(new Error("External tool guard request failed."));
|
|
257
|
+
});
|
|
258
|
+
request.end(body);
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
};
|
|
262
|
+
export {
|
|
263
|
+
DEFAULT_EXTERNAL_TOOL_GUARD_TIMEOUT_MS,
|
|
264
|
+
EXTERNAL_TOOL_GUARD_PROTOCOL_VERSION,
|
|
265
|
+
MAX_EXTERNAL_TOOL_GUARD_TIMEOUT_MS,
|
|
266
|
+
MIN_EXTERNAL_TOOL_GUARD_TIMEOUT_MS,
|
|
267
|
+
RequiredExternalToolGuard
|
|
268
|
+
};
|
|
269
|
+
/**
|
|
270
|
+
* @license
|
|
271
|
+
* Copyright 2025 Qwen Team
|
|
272
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
273
|
+
*/
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
|
-
import {
|
|
4
|
-
getHeadlessYoloSafetyWarning
|
|
5
|
-
} from "./chunk-6H67XLET.js";
|
|
6
3
|
import {
|
|
7
4
|
RUNTIME_STARTUP_CANCELLED_MESSAGE
|
|
8
5
|
} from "./chunk-QUPXZXLV.js";
|
|
6
|
+
import {
|
|
7
|
+
getHeadlessYoloSafetyWarning
|
|
8
|
+
} from "./chunk-6H67XLET.js";
|
|
9
9
|
import {
|
|
10
10
|
isValidMemoryBudgetMb,
|
|
11
11
|
memoryBudgetRangeError
|
|
@@ -341,7 +341,7 @@ async function maybeOpenWebShellBrowser(handle, open) {
|
|
|
341
341
|
} catch {
|
|
342
342
|
return;
|
|
343
343
|
}
|
|
344
|
-
const { maybeOpenWebShellBrowser: openBrowser } = await import("./serve-
|
|
344
|
+
const { maybeOpenWebShellBrowser: openBrowser } = await import("./serve-ZCCQ2G2L.js");
|
|
345
345
|
await openBrowser(handle, true);
|
|
346
346
|
}
|
|
347
347
|
__name(maybeOpenWebShellBrowser, "maybeOpenWebShellBrowser");
|
|
@@ -403,7 +403,7 @@ async function tryRunServeFastPath(rawArgv = process.argv.slice(2)) {
|
|
|
403
403
|
process.exit(1);
|
|
404
404
|
}
|
|
405
405
|
writeServeWarnings(parsed);
|
|
406
|
-
const { runQwenServe } = await import("./run-qwen-serve-
|
|
406
|
+
const { runQwenServe } = await import("./run-qwen-serve-UYEMGPKA.js");
|
|
407
407
|
let handle;
|
|
408
408
|
try {
|
|
409
409
|
handle = await runQwenServe(parsed.options, {
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
registerMcpHotReload
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-RTWF7FF7.js";
|
|
6
6
|
import {
|
|
7
7
|
startEarlyStartupPrefetches
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-N47ZM2KI.js";
|
|
9
9
|
import {
|
|
10
10
|
ExtensionRefreshState,
|
|
11
11
|
appEvents,
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
loadSandboxConfig,
|
|
17
17
|
parseArguments,
|
|
18
18
|
validateAuthMethod
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-XOZ2R6XI.js";
|
|
20
20
|
import {
|
|
21
21
|
CUSTOM_SANDBOX_IMAGE_ENV_VAR,
|
|
22
22
|
HOST_UPDATE_RELAUNCH_ENV_VAR,
|
|
@@ -25,8 +25,8 @@ import {
|
|
|
25
25
|
UPDATE_COMPLETE_EXIT_CODE,
|
|
26
26
|
UPDATE_ON_EXIT_MESSAGE,
|
|
27
27
|
UPDATE_RELAUNCH_EXIT_CODE
|
|
28
|
-
} from "./chunk-
|
|
29
|
-
import "./chunk-
|
|
28
|
+
} from "./chunk-CXYBX4AL.js";
|
|
29
|
+
import "./chunk-WPKIU4PA.js";
|
|
30
30
|
import {
|
|
31
31
|
getHeadlessYoloSafetyWarning
|
|
32
32
|
} from "./chunk-6H67XLET.js";
|
|
@@ -35,8 +35,8 @@ import {
|
|
|
35
35
|
markAcpStartup,
|
|
36
36
|
recordAcpConfigStartupEvent
|
|
37
37
|
} from "./chunk-M744OFVE.js";
|
|
38
|
-
import "./chunk-
|
|
39
|
-
import "./chunk-
|
|
38
|
+
import "./chunk-BU4BRCPX.js";
|
|
39
|
+
import "./chunk-EHMN6SEG.js";
|
|
40
40
|
import "./chunk-DYA25Y7U.js";
|
|
41
41
|
import {
|
|
42
42
|
sanitizeTerminalText
|
|
@@ -48,15 +48,15 @@ import "./chunk-RXFQM6FQ.js";
|
|
|
48
48
|
import "./chunk-HGCQ5SE7.js";
|
|
49
49
|
import "./chunk-JELIWHXD.js";
|
|
50
50
|
import "./chunk-Z4X5MTRT.js";
|
|
51
|
-
import "./chunk-
|
|
52
|
-
import "./chunk-
|
|
51
|
+
import "./chunk-CDHNGCJI.js";
|
|
52
|
+
import "./chunk-C4GRKMUL.js";
|
|
53
53
|
import "./chunk-57OAHC2Y.js";
|
|
54
54
|
import "./chunk-GLWP3FDB.js";
|
|
55
55
|
import "./chunk-XCGIMOLN.js";
|
|
56
|
-
import "./chunk-
|
|
57
|
-
import "./chunk-
|
|
58
|
-
import "./chunk-DTAPI453.js";
|
|
56
|
+
import "./chunk-6KEN3RIC.js";
|
|
57
|
+
import "./chunk-7GYP5COR.js";
|
|
59
58
|
import "./chunk-VWOVHOTT.js";
|
|
59
|
+
import "./chunk-DTAPI453.js";
|
|
60
60
|
import "./chunk-V6WHFGST.js";
|
|
61
61
|
import "./chunk-UKZEXS6K.js";
|
|
62
62
|
import "./chunk-6PLDPT2C.js";
|
|
@@ -65,12 +65,17 @@ import "./chunk-QONSRAEV.js";
|
|
|
65
65
|
import "./chunk-24ER7UV4.js";
|
|
66
66
|
import "./chunk-ALMR3E6Q.js";
|
|
67
67
|
import "./chunk-BK2UNYWD.js";
|
|
68
|
+
import {
|
|
69
|
+
EXTERNAL_TOOL_GUARD_REQUIRED_VALUE,
|
|
70
|
+
EXTERNAL_TOOL_GUARD_TOKEN_ENV,
|
|
71
|
+
PRIVATE_EXTERNAL_TOOL_GUARD_ENV
|
|
72
|
+
} from "./chunk-BKHCW2BI.js";
|
|
68
73
|
import "./chunk-M5GB774H.js";
|
|
69
74
|
import "./chunk-XC2VAFVZ.js";
|
|
70
75
|
import "./chunk-WUC6ZFXO.js";
|
|
71
76
|
import "./chunk-DIEFUBV6.js";
|
|
72
77
|
import "./chunk-UDXSXLER.js";
|
|
73
|
-
import "./chunk-
|
|
78
|
+
import "./chunk-T4XY5CT4.js";
|
|
74
79
|
import {
|
|
75
80
|
createMinimalSettings,
|
|
76
81
|
getFlattenedSchema,
|
|
@@ -78,28 +83,28 @@ import {
|
|
|
78
83
|
getUserSettingsDir,
|
|
79
84
|
initializeLlmOutputLanguage,
|
|
80
85
|
loadSettings
|
|
81
|
-
} from "./chunk-
|
|
86
|
+
} from "./chunk-YUVTZ4UH.js";
|
|
82
87
|
import "./chunk-RKUWKYED.js";
|
|
83
88
|
import "./chunk-GOXKNSDZ.js";
|
|
84
89
|
import "./chunk-IDS7MSUP.js";
|
|
85
90
|
import {
|
|
86
91
|
initializeI18n,
|
|
87
92
|
resolveLanguageSetting
|
|
88
|
-
} from "./chunk-
|
|
93
|
+
} from "./chunk-546CDN6D.js";
|
|
89
94
|
import {
|
|
90
95
|
SETTINGS_DIRECTORY_NAME,
|
|
91
96
|
preResolveHomeEnvOverrides
|
|
92
|
-
} from "./chunk-
|
|
97
|
+
} from "./chunk-IKXE3AAC.js";
|
|
93
98
|
import {
|
|
94
99
|
ENV_CORRUPTED_PATH,
|
|
95
100
|
ENV_WAS_RECOVERED
|
|
96
101
|
} from "./chunk-6PEXNQTX.js";
|
|
97
102
|
import {
|
|
98
103
|
getInstallationInfo
|
|
99
|
-
} from "./chunk-
|
|
100
|
-
import "./chunk-
|
|
104
|
+
} from "./chunk-ZQL73PPE.js";
|
|
105
|
+
import "./chunk-NKST54XA.js";
|
|
101
106
|
import "./chunk-VJNBRRZG.js";
|
|
102
|
-
import "./chunk-
|
|
107
|
+
import "./chunk-72DZPDH4.js";
|
|
103
108
|
import "./chunk-ALGGS7UH.js";
|
|
104
109
|
import "./chunk-MR3PXB6E.js";
|
|
105
110
|
import "./chunk-XFSFZCM5.js";
|
|
@@ -120,7 +125,7 @@ import {
|
|
|
120
125
|
worktreeBranchForSlug,
|
|
121
126
|
writeWorktreeSession,
|
|
122
127
|
writeWorktreeSessionMarker
|
|
123
|
-
} from "./chunk-
|
|
128
|
+
} from "./chunk-DOA7MCDY.js";
|
|
124
129
|
import "./chunk-GOFAQQZA.js";
|
|
125
130
|
import "./chunk-5M6IDOMF.js";
|
|
126
131
|
import "./chunk-TWPJO254.js";
|
|
@@ -130,11 +135,11 @@ import "./chunk-I7JDGNG6.js";
|
|
|
130
135
|
import "./chunk-A6SX5TAH.js";
|
|
131
136
|
import "./chunk-33FNCQSY.js";
|
|
132
137
|
import "./chunk-6PVPNMXU.js";
|
|
133
|
-
import "./chunk-
|
|
138
|
+
import "./chunk-6D6V55ZQ.js";
|
|
134
139
|
import "./chunk-IRH27ZC2.js";
|
|
135
140
|
import "./chunk-QHWCP53L.js";
|
|
136
141
|
import "./chunk-MOHAWIAW.js";
|
|
137
|
-
import "./chunk-
|
|
142
|
+
import "./chunk-3PRJYMXC.js";
|
|
138
143
|
import "./chunk-O6GEWCJA.js";
|
|
139
144
|
import "./chunk-T26EAKDL.js";
|
|
140
145
|
import "./chunk-ZPJWUGCS.js";
|
|
@@ -151,7 +156,7 @@ import "./chunk-WVAESIM6.js";
|
|
|
151
156
|
import "./chunk-K623ENWT.js";
|
|
152
157
|
import "./chunk-AQ37AY7B.js";
|
|
153
158
|
import "./chunk-432XCUHF.js";
|
|
154
|
-
import "./chunk-
|
|
159
|
+
import "./chunk-HU5TUALO.js";
|
|
155
160
|
import "./chunk-XC656O42.js";
|
|
156
161
|
import "./chunk-NAVJD2PQ.js";
|
|
157
162
|
import "./chunk-QYPT3QUD.js";
|
|
@@ -160,7 +165,7 @@ import "./chunk-DGEIYUC3.js";
|
|
|
160
165
|
import "./chunk-MPHPFVKK.js";
|
|
161
166
|
import "./chunk-GLNBDYUX.js";
|
|
162
167
|
import "./chunk-DJ2GSRLV.js";
|
|
163
|
-
import "./chunk-
|
|
168
|
+
import "./chunk-AU3XNTMV.js";
|
|
164
169
|
import "./chunk-MGSSJT27.js";
|
|
165
170
|
import "./chunk-2J3OJGTL.js";
|
|
166
171
|
import "./chunk-P3QQPMQA.js";
|
|
@@ -171,12 +176,13 @@ import {
|
|
|
171
176
|
PRIVATE_ACP_CAPABILITY_ENV,
|
|
172
177
|
logUserPrompt,
|
|
173
178
|
uiTelemetryService
|
|
174
|
-
} from "./chunk-
|
|
179
|
+
} from "./chunk-O656RSMC.js";
|
|
180
|
+
import "./chunk-WOJZWRAZ.js";
|
|
175
181
|
import "./chunk-VGC4I5JJ.js";
|
|
176
182
|
import "./chunk-E4WHKETF.js";
|
|
177
183
|
import "./chunk-ZPPP6VCL.js";
|
|
178
184
|
import "./chunk-D7D7RXIJ.js";
|
|
179
|
-
import "./chunk-
|
|
185
|
+
import "./chunk-P7LKADIT.js";
|
|
180
186
|
import "./chunk-46UV252V.js";
|
|
181
187
|
import "./chunk-ZBVS26BY.js";
|
|
182
188
|
import "./chunk-BFHXDAR7.js";
|
|
@@ -199,11 +205,6 @@ import {
|
|
|
199
205
|
handleUncaughtException,
|
|
200
206
|
isExpectedPtyRaceError
|
|
201
207
|
} from "./chunk-QL4TN4HS.js";
|
|
202
|
-
import {
|
|
203
|
-
cleanupCheckpoints,
|
|
204
|
-
registerCleanup,
|
|
205
|
-
runExitCleanup
|
|
206
|
-
} from "./chunk-LSYVASZS.js";
|
|
207
208
|
import {
|
|
208
209
|
finalizeStartupProfile,
|
|
209
210
|
isStartupProfilerEnabled,
|
|
@@ -212,6 +213,11 @@ import {
|
|
|
212
213
|
setInteractiveMode
|
|
213
214
|
} from "./chunk-QSWDGAIC.js";
|
|
214
215
|
import "./chunk-Q7YDKOGY.js";
|
|
216
|
+
import {
|
|
217
|
+
cleanupCheckpoints,
|
|
218
|
+
registerCleanup,
|
|
219
|
+
runExitCleanup
|
|
220
|
+
} from "./chunk-QG2ACINA.js";
|
|
215
221
|
import {
|
|
216
222
|
writeStderrLine,
|
|
217
223
|
writeStderrLineSafe
|
|
@@ -2595,16 +2601,24 @@ async function main() {
|
|
|
2595
2601
|
initializeWarningHandler();
|
|
2596
2602
|
const privateAcpParentCapability = process.env[PRIVATE_ACP_CAPABILITY_ENV];
|
|
2597
2603
|
delete process.env[PRIVATE_ACP_CAPABILITY_ENV];
|
|
2604
|
+
const privateExternalToolGuard = process.env[PRIVATE_EXTERNAL_TOOL_GUARD_ENV] === EXTERNAL_TOOL_GUARD_REQUIRED_VALUE ? EXTERNAL_TOOL_GUARD_REQUIRED_VALUE : void 0;
|
|
2605
|
+
delete process.env[PRIVATE_EXTERNAL_TOOL_GUARD_ENV];
|
|
2598
2606
|
if (process.argv.includes("--bare")) {
|
|
2599
2607
|
process.env[QWEN_CODE_SIMPLE_ENV_VAR] = "1";
|
|
2600
2608
|
}
|
|
2601
2609
|
preResolveHomeEnvOverrides();
|
|
2602
2610
|
markAcpStartup("argsParseStart");
|
|
2603
2611
|
let argv = await parseArguments();
|
|
2612
|
+
delete process.env[EXTERNAL_TOOL_GUARD_TOKEN_ENV];
|
|
2604
2613
|
markAcpStartup("argsParseEnd");
|
|
2605
2614
|
profileCheckpoint("after_parse_arguments");
|
|
2606
2615
|
const isAcpMode = argv.acp || argv.experimentalAcp;
|
|
2607
|
-
const privateAcpChildEnv = isAcpMode && privateAcpParentCapability !== void 0 ? {
|
|
2616
|
+
const privateAcpChildEnv = isAcpMode && privateAcpParentCapability !== void 0 ? {
|
|
2617
|
+
[PRIVATE_ACP_CAPABILITY_ENV]: privateAcpParentCapability,
|
|
2618
|
+
...privateExternalToolGuard ? {
|
|
2619
|
+
[PRIVATE_EXTERNAL_TOOL_GUARD_ENV]: privateExternalToolGuard
|
|
2620
|
+
} : {}
|
|
2621
|
+
} : void 0;
|
|
2608
2622
|
if ((argv.acp || argv.experimentalAcp) && process.env["QWEN_CODE_SCRUB_ELECTRON_RUN_AS_NODE"] === "1") {
|
|
2609
2623
|
delete process.env["ELECTRON_RUN_AS_NODE"];
|
|
2610
2624
|
if (process.env["QWEN_CODE_NO_RELAUNCH"] || process.env["SANDBOX"]) {
|
|
@@ -2636,7 +2650,7 @@ async function main() {
|
|
|
2636
2650
|
await initializeI18n(
|
|
2637
2651
|
resolveLanguageSetting(settings.merged.general?.language)
|
|
2638
2652
|
);
|
|
2639
|
-
const { handleList: handleListExtensions } = await import("./list-
|
|
2653
|
+
const { handleList: handleListExtensions } = await import("./list-7XLPV5GC.js");
|
|
2640
2654
|
await handleListExtensions();
|
|
2641
2655
|
process.exit(0);
|
|
2642
2656
|
}
|
|
@@ -2650,7 +2664,7 @@ async function main() {
|
|
|
2650
2664
|
dns.setDefaultResultOrder(
|
|
2651
2665
|
validateDnsResolutionOrder(settings.merged.advanced?.dnsResolutionOrder)
|
|
2652
2666
|
);
|
|
2653
|
-
const { themeManager, AUTO_THEME_NAME } = await import("./theme-manager-
|
|
2667
|
+
const { themeManager, AUTO_THEME_NAME } = await import("./theme-manager-CMVKD2JH.js");
|
|
2654
2668
|
themeManager.loadCustomThemes(settings.merged.ui?.customThemes);
|
|
2655
2669
|
const configuredTheme = settings.merged.ui?.theme;
|
|
2656
2670
|
if (configuredTheme && configuredTheme !== AUTO_THEME_NAME) {
|
|
@@ -2667,7 +2681,7 @@ async function main() {
|
|
|
2667
2681
|
await initializeI18n(
|
|
2668
2682
|
resolveLanguageSetting(settings.merged.general?.language)
|
|
2669
2683
|
);
|
|
2670
|
-
const { updateBeforeRelaunch } = await import("./update-relaunch-
|
|
2684
|
+
const { updateBeforeRelaunch } = await import("./update-relaunch-JBLI6LJF.js");
|
|
2671
2685
|
const shouldRelaunch = await updateBeforeRelaunch(
|
|
2672
2686
|
settings,
|
|
2673
2687
|
updateProjectRoot,
|
|
@@ -2835,7 +2849,7 @@ ${finalArgs[promptIndex + 1]}`;
|
|
|
2835
2849
|
);
|
|
2836
2850
|
let resolvedSessionId;
|
|
2837
2851
|
if (argv.resume === "") {
|
|
2838
|
-
const { showResumeSessionPicker } = await import("./StandaloneSessionPicker-
|
|
2852
|
+
const { showResumeSessionPicker } = await import("./StandaloneSessionPicker-NGLY26I4.js");
|
|
2839
2853
|
resolvedSessionId = await showResumeSessionPicker();
|
|
2840
2854
|
} else if (!isValidSessionId(argv.resume)) {
|
|
2841
2855
|
const sessionService = new SessionService(process.cwd());
|
|
@@ -2846,7 +2860,7 @@ ${finalArgs[promptIndex + 1]}`;
|
|
|
2846
2860
|
writeStderrLine(
|
|
2847
2861
|
`Multiple sessions found with title "${argv.resume}". Please select one:`
|
|
2848
2862
|
);
|
|
2849
|
-
const { showResumeSessionPicker } = await import("./StandaloneSessionPicker-
|
|
2863
|
+
const { showResumeSessionPicker } = await import("./StandaloneSessionPicker-NGLY26I4.js");
|
|
2850
2864
|
resolvedSessionId = await showResumeSessionPicker(
|
|
2851
2865
|
process.cwd(),
|
|
2852
2866
|
matches
|
|
@@ -2968,7 +2982,7 @@ ${finalArgs[promptIndex + 1]}`;
|
|
|
2968
2982
|
registerCleanup(installInteractiveSignalHandlers(wasRaw));
|
|
2969
2983
|
}
|
|
2970
2984
|
if (config.isInteractive() && !wasRaw && process.stdin.isTTY) {
|
|
2971
|
-
const { startEarlyInputCapture, stopAndGetCapturedInput } = await import("./earlyInputCapture-
|
|
2985
|
+
const { startEarlyInputCapture, stopAndGetCapturedInput } = await import("./earlyInputCapture-WUNYYFOS.js");
|
|
2972
2986
|
const { detectAndEnableKittyProtocol } = await import("./kittyProtocolDetector-BFLAKYXH.js");
|
|
2973
2987
|
process.stdin.setRawMode(true);
|
|
2974
2988
|
startEarlyInputCapture();
|
|
@@ -2981,11 +2995,11 @@ ${finalArgs[promptIndex + 1]}`;
|
|
|
2981
2995
|
}
|
|
2982
2996
|
}
|
|
2983
2997
|
if (config.isInteractive()) {
|
|
2984
|
-
const { setMaxSizedBoxDebugging } = await import("./MaxSizedBox-
|
|
2998
|
+
const { setMaxSizedBoxDebugging } = await import("./MaxSizedBox-A3UYJS6B.js");
|
|
2985
2999
|
setMaxSizedBoxDebugging(isDebugMode3);
|
|
2986
3000
|
}
|
|
2987
3001
|
const inputFormat = process.stdin.isTTY ? "text" /* TEXT */ : typeof config.getInputFormat === "function" ? config.getInputFormat() : "text" /* TEXT */;
|
|
2988
|
-
const { initializeApp } = await import("./initializer-
|
|
3002
|
+
const { initializeApp } = await import("./initializer-CEZ4RPQV.js");
|
|
2989
3003
|
let input = config.getQuestion();
|
|
2990
3004
|
const hasRemoteInput = Boolean(config.getInputFile?.());
|
|
2991
3005
|
const deferIdeConnection = config.isInteractive() && !config.getExperimentalZedIntegration() && !input && !hasRemoteInput;
|
|
@@ -2997,10 +3011,11 @@ ${finalArgs[promptIndex + 1]}`;
|
|
|
2997
3011
|
profileCheckpoint("after_initialize_app");
|
|
2998
3012
|
if (config.getExperimentalZedIntegration()) {
|
|
2999
3013
|
markAcpStartup("acpImportStart");
|
|
3000
|
-
const { runAcpAgent } = await import("./acpAgent-
|
|
3014
|
+
const { runAcpAgent } = await import("./acpAgent-V54T2EEL.js");
|
|
3001
3015
|
markAcpStartup("acpImportEnd");
|
|
3002
3016
|
await runAcpAgent(config, settings, argv, {
|
|
3003
|
-
privateParentCapability: isAcpMode ? privateAcpParentCapability : void 0
|
|
3017
|
+
privateParentCapability: isAcpMode ? privateAcpParentCapability : void 0,
|
|
3018
|
+
externalToolGuardRequired: isAcpMode && privateAcpParentCapability !== void 0 && privateExternalToolGuard === EXTERNAL_TOOL_GUARD_REQUIRED_VALUE
|
|
3004
3019
|
});
|
|
3005
3020
|
await runExitCleanup();
|
|
3006
3021
|
process.exit(0);
|
|
@@ -3039,7 +3054,7 @@ ${finalArgs[promptIndex + 1]}`;
|
|
|
3039
3054
|
setInteractiveMode(true);
|
|
3040
3055
|
await kittyProtocolDetectionComplete;
|
|
3041
3056
|
await themeAutoDetectionComplete;
|
|
3042
|
-
const { startInteractiveUI } = await import("./startInteractiveUI-
|
|
3057
|
+
const { startInteractiveUI } = await import("./startInteractiveUI-6BDRXSMF.js");
|
|
3043
3058
|
await startInteractiveUI(
|
|
3044
3059
|
config,
|
|
3045
3060
|
settings,
|
|
@@ -3100,7 +3115,7 @@ ${finalArgs[promptIndex + 1]}`;
|
|
|
3100
3115
|
${input}`;
|
|
3101
3116
|
}
|
|
3102
3117
|
}
|
|
3103
|
-
const { validateNonInteractiveAuth } = await import("./validateNonInterActiveAuth-
|
|
3118
|
+
const { validateNonInteractiveAuth } = await import("./validateNonInterActiveAuth-Q4763ONQ.js");
|
|
3104
3119
|
const nonInteractiveConfig = await validateNonInteractiveAuth(
|
|
3105
3120
|
settings.merged.security?.auth?.useExternal,
|
|
3106
3121
|
config,
|
|
@@ -3109,7 +3124,7 @@ ${input}`;
|
|
|
3109
3124
|
const prompt_id = createNonInteractivePromptId(config.getSessionId());
|
|
3110
3125
|
if (inputFormat === "stream-json" /* STREAM_JSON */) {
|
|
3111
3126
|
const trimmedInput = (input ?? "").trim();
|
|
3112
|
-
const { runNonInteractiveStreamJson } = await import("./session-
|
|
3127
|
+
const { runNonInteractiveStreamJson } = await import("./session-IQLCT32T.js");
|
|
3113
3128
|
await runNonInteractiveStreamJson(
|
|
3114
3129
|
nonInteractiveConfig,
|
|
3115
3130
|
trimmedInput.length > 0 ? trimmedInput : "",
|
|
@@ -3133,7 +3148,7 @@ ${input}`;
|
|
|
3133
3148
|
prompt_length: input.length
|
|
3134
3149
|
});
|
|
3135
3150
|
debugLogger5.debug(`Session ID: ${config.getSessionId()}`);
|
|
3136
|
-
const { runNonInteractive } = await import("./nonInteractiveCli-
|
|
3151
|
+
const { runNonInteractive } = await import("./nonInteractiveCli-XEBIE7MG.js");
|
|
3137
3152
|
const exitCode = await runNonInteractive(
|
|
3138
3153
|
nonInteractiveConfig,
|
|
3139
3154
|
settings,
|
|
@@ -283,7 +283,7 @@ var GeminiContentGenerator = class {
|
|
|
283
283
|
|
|
284
284
|
// packages/core/src/core/geminiContentGenerator/index.ts
|
|
285
285
|
function createGeminiContentGenerator(config, gcConfig) {
|
|
286
|
-
const version = "0.21.
|
|
286
|
+
const version = "0.21.6-preview.0";
|
|
287
287
|
const userAgent = config.userAgent || `QwenCode/${version} (${process.platform}; ${process.arch})`;
|
|
288
288
|
const baseHeaders = {
|
|
289
289
|
"User-Agent": userAgent
|