@qwen-code/qwen-code 0.21.5 → 0.21.6
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/channels/github.md +31 -19
- package/bundled/qc-helper/docs/features/code-review.md +5 -1
- 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 +72 -60
- package/chunks/{MaxSizedBox-2MWU5JYB.js → MaxSizedBox-2HFKP4LI.js} +11 -10
- package/chunks/{StandaloneSessionPicker-B6MI5NTB.js → StandaloneSessionPicker-RBV72M5N.js} +26 -25
- package/chunks/{acp-startup-profiler-3RICG2YW.js → acp-startup-profiler-ORIQ2CCQ.js} +2 -2
- package/chunks/{acpAgent-MRPYN6FH.js → acpAgent-WO6JFCVQ.js} +1232 -139
- package/chunks/{agent-NAOXNW4I.js → agent-AHGLYNZ4.js} +11 -10
- package/chunks/{agent-headless-L4PPVFKW.js → agent-headless-NTXKKGRO.js} +11 -10
- package/chunks/{bridge-LHXGYNCO.js → bridge-RPAU64CA.js} +17 -15
- package/chunks/{channel-management-service-UHX56NBO.js → channel-management-service-IGEUOVRT.js} +3 -3
- package/chunks/{channel-settings-store-QB54TLYE.js → channel-settings-store-ON64MF7G.js} +18 -17
- package/chunks/{channel-worker-group-NDG4WOOZ.js → channel-worker-group-JWQK224X.js} +6 -5
- package/chunks/{channel-worker-manager-ZCW6UW34.js → channel-worker-manager-77E3OXRQ.js} +6 -5
- package/chunks/{channel-worker-supervisor-ATGFTZRN.js → channel-worker-supervisor-62YWUGP2.js} +4 -3
- package/chunks/{chunk-EXHQZBVJ.js → chunk-2POQWYM6.js} +2 -2
- package/chunks/{chunk-YMUZQ3MQ.js → chunk-3LZKY4V4.js} +3 -3
- package/chunks/{chunk-7MFQLOHZ.js → chunk-3PRJYMXC.js} +1 -1
- package/chunks/{chunk-SJMCYCUQ.js → chunk-3UOLYNTF.js} +5 -5
- package/chunks/{chunk-Q2V4AOQL.js → chunk-4JH77A2U.js} +1 -1
- package/chunks/{chunk-MISUEWB4.js → chunk-4S4OEQ6U.js} +10 -6
- package/chunks/{chunk-URJHXOSO.js → chunk-4WTAQEHV.js} +1 -1
- package/chunks/{chunk-ZLGPHA34.js → chunk-536SWZTA.js} +5 -5
- package/chunks/{chunk-WU5NBSLD.js → chunk-5MJGUQU5.js} +3 -3
- package/chunks/{chunk-3P4GP4S2.js → chunk-75QMRMO7.js} +4 -4
- package/chunks/{chunk-YLL3SC5S.js → chunk-A4VTILZT.js} +1032 -913
- package/chunks/{chunk-B3EBIZUY.js → chunk-ACZRB7AD.js} +8 -3
- package/chunks/chunk-BKHCW2BI.js +41 -0
- package/chunks/{chunk-XD2PNH3K.js → chunk-BOGOR4HB.js} +5 -5
- package/chunks/{chunk-QL4TN4HS.js → chunk-BRVWYMKV.js} +1 -1
- package/chunks/{chunk-TCOJPG2P.js → chunk-C4CBJQKY.js} +1 -1
- package/chunks/{chunk-4O6HLCOF.js → chunk-CA4UIDFU.js} +1 -1
- package/chunks/{chunk-SQTA6PAY.js → chunk-CJ5WLD5Y.js} +6 -2
- package/chunks/{chunk-7W5KOBYU.js → chunk-DIT4V3XH.js} +1 -1
- package/chunks/{chunk-OIGB253L.js → chunk-DVBEGGLG.js} +8 -8
- package/chunks/{chunk-DTAPI453.js → chunk-EMYZIABH.js} +1 -1
- package/chunks/{chunk-GBY3ODW7.js → chunk-EXCEQD22.js} +3 -3
- package/chunks/{chunk-VJPF6GF2.js → chunk-FZFP7RZI.js} +3 -3
- package/chunks/{chunk-3GOCVBYR.js → chunk-G5NNWEYE.js} +5 -5
- package/chunks/{chunk-IWYXZAGT.js → chunk-GESMMPAK.js} +33 -33
- package/chunks/{chunk-SVIEVA3L.js → chunk-GK2H5GRC.js} +29 -4
- package/chunks/{chunk-7M2RLFNX.js → chunk-GWRHVJY2.js} +11 -11
- package/chunks/{chunk-BK2UNYWD.js → chunk-HIBNSEJE.js} +12 -0
- package/chunks/{chunk-4LLUH3A7.js → chunk-HU5TUALO.js} +95 -8
- package/chunks/{chunk-J7I2BZHS.js → chunk-HY25ULVN.js} +23 -6
- package/chunks/{chunk-G2UXFO2B.js → chunk-IMOQO6YL.js} +1 -1
- package/chunks/{chunk-CAX76R46.js → chunk-JE44IPH6.js} +1 -1
- package/chunks/{chunk-IK3RYLAD.js → chunk-K2B3X3E7.js} +3 -3
- package/chunks/{chunk-OWAK7LMW.js → chunk-KGJGEEVR.js} +7 -0
- package/chunks/{chunk-K64OI7S7.js → chunk-KHUA3NQV.js} +2 -2
- package/chunks/{chunk-LEZFUYPM.js → chunk-LAAFLUQV.js} +4 -4
- package/chunks/{chunk-FHPKHXHT.js → chunk-MKVZE4ZJ.js} +5 -1
- package/chunks/{chunk-4NEBUDWS.js → chunk-N2GJU6KI.js} +9 -9
- package/chunks/{chunk-N3RERU5N.js → chunk-NGJOAKJY.js} +3 -3
- package/chunks/chunk-NKLP3DCK.js +22 -0
- package/chunks/{chunk-K6VEL5KP.js → chunk-NKSF7HYF.js} +1 -1
- package/chunks/{chunk-LMNM37OE.js → chunk-O7V7N4G7.js} +1 -1
- package/chunks/{chunk-3H5RFLTS.js → chunk-ODPXHGLL.js} +2 -2
- package/chunks/{chunk-KH2BIJ4H.js → chunk-OP2OHZ7K.js} +267 -11
- package/chunks/{chunk-VOA2UPZM.js → chunk-OWSW7EYP.js} +5 -5
- package/chunks/{chunk-B2RBYP7Z.js → chunk-OXX3FG2N.js} +2 -2
- package/chunks/{chunk-RM3F46UT.js → chunk-PPUOYL77.js} +71 -6
- package/chunks/{chunk-ZPGMDT4S.js → chunk-PX5DNLSA.js} +19 -92
- package/chunks/{chunk-FEUXV3DC.js → chunk-Q5RM32DR.js} +1 -1
- package/chunks/{chunk-AEWOKOJY.js → chunk-QZKYZCN3.js} +1 -1
- package/chunks/{chunk-UKZEXS6K.js → chunk-R574ATRM.js} +11 -0
- package/chunks/{chunk-OGAARVN7.js → chunk-R5RBXLNC.js} +3 -3
- package/chunks/{chunk-5HWAJ4BK.js → chunk-RFUHDCNF.js} +1 -1
- package/chunks/{chunk-LSYVASZS.js → chunk-RHTTKJTP.js} +1 -1
- package/chunks/{chunk-LYPXNRBX.js → chunk-RK2EE3T7.js} +1 -1
- package/chunks/{chunk-CIUUYB23.js → chunk-S7CV4KO6.js} +3 -3
- package/chunks/{chunk-4NNR24EP.js → chunk-SKNE3KQC.js} +3 -3
- package/chunks/{chunk-JDNWIXHJ.js → chunk-SLSWFHDF.js} +3 -3
- package/chunks/{chunk-UWSXFI6E.js → chunk-SQC6K5HI.js} +6 -2
- package/chunks/{chunk-P3SLTSNY.js → chunk-SQOMTWQT.js} +4 -4
- package/chunks/{chunk-D7QAZ5DF.js → chunk-SUKEUUAA.js} +1 -1
- package/chunks/{chunk-WTM5QONI.js → chunk-T4JSA7KU.js} +2 -2
- package/chunks/{chunk-I7JDGNG6.js → chunk-T5U6IM4C.js} +6 -2
- package/chunks/{chunk-2JBETW4S.js → chunk-TGGEZINK.js} +5 -5
- package/chunks/{chunk-C6ARWPCG.js → chunk-TOGZTG4X.js} +2 -2
- package/chunks/{chunk-A6SX5TAH.js → chunk-TSERKWCX.js} +6 -2
- package/chunks/{chunk-IWGMDSC3.js → chunk-U4AF3QLU.js} +355 -17
- package/chunks/{chunk-PDDYAXL2.js → chunk-UGTWD35F.js} +14 -1
- package/chunks/{chunk-BWLUCN35.js → chunk-ULPQQSDN.js} +2 -2
- package/chunks/{chunk-GEP54CHX.js → chunk-VGFPFM4U.js} +3 -3
- package/chunks/{chunk-NLQIEY6W.js → chunk-VNQCPBC2.js} +3 -3
- package/chunks/{chunk-K2ETEWG6.js → chunk-VSALQLT7.js} +1 -1
- package/chunks/{chunk-YO4JI7B4.js → chunk-W5DXUTXD.js} +12 -6
- package/chunks/{chunk-M744OFVE.js → chunk-W7U4ESW2.js} +1 -1
- package/chunks/{chunk-TJ56V3AR.js → chunk-WNU7TZTO.js} +4 -4
- package/chunks/{chunk-GTM6IHBB.js → chunk-WO2B5E5B.js} +1 -0
- package/chunks/chunk-WOJZWRAZ.js +123 -0
- package/chunks/{chunk-5XNO4AW7.js → chunk-XA4TMLFN.js} +11 -11
- package/chunks/{chunk-GP4IMBX5.js → chunk-XM2O73NC.js} +1696 -476
- package/chunks/{chunk-IZ2CMEYO.js → chunk-YMBOEAF4.js} +1 -1
- package/chunks/{chunk-QONSRAEV.js → chunk-YP5KH5Y7.js} +1 -1
- package/chunks/{chunk-ZLJQIGCH.js → chunk-YZQTA3ID.js} +28 -11
- package/chunks/{computer-use-XDOGP2KA.js → computer-use-5HXJ2P4X.js} +11 -10
- package/chunks/{config-utils-E3ZQTHGM.js → config-utils-VXD4SPVR.js} +2 -2
- package/chunks/{contextCommand-N3LQDCYJ.js → contextCommand-7BEHRX2H.js} +14 -13
- package/chunks/{core-runtime-STAFP45W.js → core-runtime-U4VJ5TIV.js} +11 -10
- package/chunks/create-sub-session-QZNQY332.js +772 -0
- package/chunks/{daemon-CCIX4BMG.js → daemon-YI5RY62O.js} +115 -3
- package/chunks/{daemon-status-provider-PPAH3ATF.js → daemon-status-provider-UJUGTDTL.js} +21 -19
- package/chunks/{daemon-trust-policy-X6XL3MB4.js → daemon-trust-policy-ZHDD5VYQ.js} +17 -16
- package/chunks/{daemon-trust-policy-monitor-M5LBL2HD.js → daemon-trust-policy-monitor-5SHYBDGA.js} +17 -16
- package/chunks/{deferred-core-runtime-O54YPTBU.js → deferred-core-runtime-QWAEBTR5.js} +11 -10
- package/chunks/discovery-XLHITE74.js +220 -0
- package/chunks/{dist-IKGVITP3.js → dist-KS4O2NKE.js} +99 -6
- package/chunks/{earlyInputCapture-CBIT2RGT.js → earlyInputCapture-5BMSGKOI.js} +11 -10
- package/chunks/{edit-KW2TOC6A.js → edit-IVQQVYYK.js} +11 -10
- package/chunks/{enter-worktree-YL34NEU5.js → enter-worktree-P3DF2N6O.js} +11 -10
- package/chunks/{enterPlanMode-JFJTDASQ.js → enterPlanMode-KKTDVLAD.js} +11 -10
- package/chunks/{environment-IATU5GXG.js → environment-W5TRDM3G.js} +14 -13
- package/chunks/{errors-SAVRDE7Q.js → errors-GJJB36IG.js} +14 -13
- package/chunks/{exit-worktree-5M43QPBB.js → exit-worktree-LV5RLOCU.js} +11 -10
- package/chunks/{exitPlanMode-W4EICZ4N.js → exitPlanMode-TUGOB2LL.js} +11 -10
- package/chunks/external-tool-guard-provider-5HTGOPGU.js +273 -0
- package/chunks/{fast-path-YQJPIKMP.js → fast-path-2FU23PAQ.js} +5 -5
- package/chunks/{gemini-FUF5SSPR.js → gemini-KDULDQPP.js} +70 -55
- package/chunks/{geminiContentGenerator-LLLZBOUG.js → geminiContentGenerator-LOCFHNVA.js} +1 -1
- package/chunks/{glob-LJFFMN4D.js → glob-Z4NQFKWS.js} +11 -10
- package/chunks/{grep-Q64EAM73.js → grep-Z67Z7EN6.js} +11 -10
- package/chunks/{handleAutoUpdate-QBMPRTSQ.js → handleAutoUpdate-DFUZE6I6.js} +16 -15
- package/chunks/{i18n-LDUW5DMN.js → i18n-R4FMZ7N2.js} +13 -12
- package/chunks/{image-gen-G7RLG3KR.js → image-gen-4CQJPQP5.js} +1 -1
- package/chunks/{initializer-74A7DMMD.js → initializer-DK672ZVE.js} +17 -16
- package/chunks/{installationInfo-OFDYLDFD.js → installationInfo-PO4Z3ES7.js} +12 -11
- package/chunks/{list-JA2EWRHJ.js → list-QXQF6C53.js} +20 -19
- package/chunks/{loadedSettingsAdapter-2GNJOQ3L.js → loadedSettingsAdapter-4D7GUGW6.js} +17 -16
- package/chunks/{loggingContentGenerator-B6B5EGB3.js → loggingContentGenerator-2P3MNACM.js} +4 -3
- package/chunks/{managed-npm-update-4YZHLUER.js → managed-npm-update-LWVJQTWO.js} +24 -14
- package/chunks/{mcp-LLK5YJVH.js → mcp-GHETAR6V.js} +17 -16
- package/chunks/{monitor-NYJPAWVP.js → monitor-4T7W4M6Q.js} +11 -10
- package/chunks/{nonInteractiveCli-HZBBBDJD.js → nonInteractiveCli-P4UKCJFM.js} +47 -45
- package/chunks/{notebook-edit-LLM6UXFX.js → notebook-edit-OC2V7U5D.js} +11 -10
- package/chunks/{openaiContentGenerator-2AEXDN55.js → openaiContentGenerator-RAJUFWQY.js} +5 -4
- package/chunks/{pidfile-3JUWX7G2.js → pidfile-HVPYVRLS.js} +11 -10
- package/chunks/{processUtils-JLLRVZHT.js → processUtils-VIQ4JHVX.js} +2 -2
- package/chunks/{qwenContentGenerator-2FESCF27.js → qwenContentGenerator-2QLCUFNZ.js} +12 -11
- package/chunks/{qwenOAuth2-2KKPYA5J.js → qwenOAuth2-J2X3EN43.js} +1 -1
- package/chunks/{read-file-5GVXLY74.js → read-file-ZNAN2B26.js} +3 -2
- package/chunks/{record-artifact-L3BAHQFN.js → record-artifact-E6AWQU2Z.js} +1 -1
- package/chunks/{resumeHistoryUtils-Z4OFBXPM.js → resumeHistoryUtils-RCY7AL5Y.js} +15 -14
- package/chunks/{ripGrep-TKOJTIAB.js → ripGrep-C3KMLZM5.js} +11 -10
- package/chunks/{run-qwen-serve-K5W6MM6M.js → run-qwen-serve-3JN75CIQ.js} +518 -75
- package/chunks/{runtime-IADXMRCY.js → runtime-VUA4WQYD.js} +20 -19
- package/chunks/{scheduler-T7AV37LD.js → scheduler-Z4IBXCOY.js} +11 -10
- package/chunks/{serve-ROEGMS3I.js → serve-67T3P7XI.js} +18 -16
- package/chunks/{server-NGXMRODI.js → server-46ZO2CLV.js} +7556 -397
- package/chunks/{session-RCDLDJA4.js → session-B4IFAFC4.js} +50 -48
- package/chunks/{settings-E6H3AURD.js → settings-AI2BTBOZ.js} +16 -15
- package/chunks/{shell-RHGGJ6BE.js → shell-BKII3B6E.js} +11 -10
- package/chunks/{skill-GQ7PBS25.js → skill-6CFOWVGA.js} +4 -3
- package/chunks/{skill-settings-E2F7OCBL.js → skill-settings-6BFQWMW4.js} +16 -15
- package/chunks/{spawnChannel-Q2IQBHME.js → spawnChannel-FJXW35U7.js} +14 -12
- package/chunks/{standalone-update-NYYZEHLD.js → standalone-update-WVINHRNS.js} +14 -13
- package/chunks/{startInteractiveUI-IX6I3Y2Z.js → startInteractiveUI-YE57CJ57.js} +140 -138
- package/chunks/{stdioHelpers-HGIYTWAY.js → stdioHelpers-7A2EE64Z.js} +5 -3
- package/chunks/{task-create-2X4UP4F3.js → task-create-Q727MXHJ.js} +2 -2
- package/chunks/{task-list-WOLJPZ64.js → task-list-G6KPQ5JT.js} +1 -1
- package/chunks/{task-update-VDUSN36E.js → task-update-YB7PXO4R.js} +2 -2
- package/chunks/{team-create-UTRVUEDA.js → team-create-GNC7NFY6.js} +11 -10
- package/chunks/{team-delete-D2VMSDOT.js → team-delete-GDO7H2T4.js} +1 -1
- package/chunks/{team-plan-approval-YZNB4U5U.js → team-plan-approval-ECALJLIO.js} +11 -10
- package/chunks/{terminal-image-renderer-QRSCS2BE.js → terminal-image-renderer-II74TFVW.js} +11 -10
- package/chunks/{theme-manager-EKZBY34I.js → theme-manager-2MGEDD22.js} +11 -10
- package/chunks/{tool-search-N2R7LVMC.js → tool-search-S6LRRACA.js} +3 -2
- package/chunks/{total-session-admission-HBIYARPO.js → total-session-admission-7WVAWQPU.js} +17 -15
- package/chunks/{trustedFolders-ZQLYRCSY.js → trustedFolders-NFS4KHO4.js} +13 -12
- package/chunks/{update-relaunch-PJWXMPCR.js → update-relaunch-Q5HLZ6UW.js} +6 -6
- package/chunks/{updateCheck-ZXRCGY66.js → updateCheck-UOVZSTP7.js} +15 -14
- package/chunks/{useAutoAcceptIndicator-ZYQW5SGJ.js → useAutoAcceptIndicator-PC6MOJCO.js} +19 -18
- package/chunks/{validateNonInterActiveAuth-M7J7OTRH.js → validateNonInterActiveAuth-YMQP3ZM7.js} +44 -42
- package/chunks/{version-2AOHMPK3.js → version-T4AQFZJH.js} +1 -1
- package/chunks/{web-fetch-DS34CJ3R.js → web-fetch-JQCJHEEX.js} +3 -2
- package/chunks/{web-search-ITFPD7V4.js → web-search-QGZ2KY4G.js} +4 -3
- package/chunks/{workflow-LZQ4PGNS.js → workflow-YIT27YWZ.js} +12 -11
- package/chunks/{workspace-providers-status-ZPTLKOBM.js → workspace-providers-status-FIDZQ2PL.js} +20 -19
- package/chunks/{workspace-registration-store-OTFKSGG7.js → workspace-registration-store-RCSPE4DU.js} +1 -1
- package/chunks/{workspace-registry-YZ3OXPHP.js → workspace-registry-5PEUCY6E.js} +17 -15
- package/chunks/{workspace-service-OCZXOOSQ.js → workspace-service-LANDVPL7.js} +21 -20
- package/chunks/{workspace-skills-status-K2ALGUCD.js → workspace-skills-status-2IQVJNIN.js} +18 -17
- package/chunks/{workspace-trust-reconciler-KMRZISJP.js → workspace-trust-reconciler-CZPZZCZC.js} +26 -24
- package/chunks/{write-file-AWBI4GJS.js → write-file-G5VNGCOG.js} +11 -10
- package/chunks/{zoom-image-NHKN6F77.js → zoom-image-6RBLD7X6.js} +3 -2
- package/cli-entry.js +14 -0
- package/cli.js +19 -15
- package/package.json +3 -3
- package/web-shell/assets/{arc-Dpg66jw7.js → arc-B-Vtkp1W.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-BJ4FIBxN.js → architectureDiagram-3BPJPVTR-qmTXIj64.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-VXmYdtYT.js → blockDiagram-GPEHLZMM-ZlnXEtdP.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-BNLDb8FE.js → c4Diagram-AAUBKEIU-Wyoirf6Z.js} +1 -1
- package/web-shell/assets/channel-DXaHnfjS.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-DR5yHxr0.js → chunk-2J33WTMH-WQwbq9d8.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-Czkq8UZU.js → chunk-4BX2VUAB-DQKnAXC4.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-DugUgM6s.js → chunk-55IACEB6-DIdgXNcO.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-Dw6quA1K.js → chunk-727SXJPM-CUwGOLEd.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-BoVYOTTz.js → chunk-AQP2D5EJ-CCBGZFZ4.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4--Amcse-j.js → chunk-FMBD7UC4-DMGXProk.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-ajaEYAC8.js → chunk-ND2GUHAM-yejcFqsh.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-CUNDZ7im.js → chunk-QZHKN3VN-DxCyqTf7.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-BigU82A0.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BigU82A0.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-BnfkD-m1.js → cose-bilkent-S5V4N54A-DOrF3cg_.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-BuUdFk7Z.js → dagre-BM42HDAG-Be6CdYQ_.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-B2ZXxoab.js → diagram-2AECGRRQ-B_Rjsft2.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-BsgOICzM.js → diagram-5GNKFQAL-BvQbKSm1.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-DTTjG6U-.js → diagram-KO2AKTUF-BsdmMdpS.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-temLf1x7.js → diagram-LMA3HP47-CrQlBaNr.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-CRFjScs2.js → diagram-OG6HWLK6-aB1MD_DL.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-D4oaY-rQ.js → erDiagram-TEJ5UH35-F-eUUn9n.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-BqG8B49b.js → flowDiagram-I6XJVG4X-DY_d8lUK.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-DffQBdd5.js → ganttDiagram-6RSMTGT7-Dqu7KBPg.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-CMDPfseF.js → gitGraphDiagram-PVQCEYII-2IkU_VEj.js} +1 -1
- package/web-shell/assets/{index-qTQR_smP.js → index-BuSbqggh.js} +1 -1
- package/web-shell/assets/index-DrfC2e9s.js +1768 -0
- package/web-shell/assets/index-QQlUCJGg.css +5 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-Cn3T83MA.js → infoDiagram-5YYISTIA-C4orwzPw.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-ijFs7e25.js → ishikawaDiagram-YF4QCWOH-fXUEfef_.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-CINTv8VB.js → journeyDiagram-JHISSGLW-Bs0I1_J5.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-CMGRZCxx.js → kanban-definition-UN3LZRKU-BPRj1dw_.js} +1 -1
- package/web-shell/assets/{linear-Co-2_37d.js → linear-DFS6ZDpW.js} +1 -1
- package/web-shell/assets/{mermaid.core-DijbyaN5.js → mermaid.core-CZxjWMaO.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-k_sDYDPZ.js → mindmap-definition-RKZ34NQL-Dsr3PmNs.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-CG-oz8V3.js → pieDiagram-4H26LBE5-D5Ngpz5Y.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-Baq7HIG2.js → quadrantDiagram-W4KKPZXB-WJK9I25z.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-CDM3ZvBt.js → requirementDiagram-4Y6WPE33-CmrYcwOH.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-C2dJbWKN.js → sankeyDiagram-5OEKKPKP-7SjCc4Mv.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-Cf1_h59p.js → sequenceDiagram-3UESZ5HK-Dl9E0IRM.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-CI5clUEc.js → stateDiagram-AJRCARHV-CRRio7yV.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-1atT7XaU.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-B2O8cAZX.js → timeline-definition-PNZ67QCA-DVyXjjfq.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-BLsJ_h9s.js → vennDiagram-CIIHVFJN-Nb2Lckzq.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-BlPU4FTA.js → wardley-L42UT6IY-DuL_otIP.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-D_U-RdU4.js → wardleyDiagram-YWT4CUSO-DVI9Q4Aa.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-BynXGSTl.js → xychartDiagram-2RQKCTM6-BNjAm7KD.js} +1 -1
- package/web-shell/index.html +2 -2
- package/bundled/review/DESIGN.md +0 -724
- package/chunks/create-sub-session-2B3JENWD.js +0 -400
- 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/index-2F4RsNzd.js +0 -1756
- package/web-shell/assets/index-CaucmEO_.css +0 -5
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BDc8asKD.js +0 -1
|
@@ -11,35 +11,35 @@ import {
|
|
|
11
11
|
resetEnvironmentTrackingForTesting,
|
|
12
12
|
resetHomeEnvBootstrapForTesting,
|
|
13
13
|
setUpCloudShellEnvironment
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-RK2EE3T7.js";
|
|
15
15
|
import {
|
|
16
16
|
DEFAULT_EXCLUDED_ENV_VARS,
|
|
17
17
|
ENV_CORRUPTED_PATH,
|
|
18
18
|
ENV_WAS_RECOVERED
|
|
19
19
|
} from "./chunk-6PEXNQTX.js";
|
|
20
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-ACZRB7AD.js";
|
|
21
21
|
import "./chunk-ALGGS7UH.js";
|
|
22
22
|
import "./chunk-MR3PXB6E.js";
|
|
23
|
-
import "./chunk-
|
|
23
|
+
import "./chunk-A4VTILZT.js";
|
|
24
24
|
import "./chunk-GOFAQQZA.js";
|
|
25
25
|
import "./chunk-5M6IDOMF.js";
|
|
26
26
|
import "./chunk-TWPJO254.js";
|
|
27
27
|
import "./chunk-H6XPXXMH.js";
|
|
28
28
|
import "./chunk-Z7JILXGX.js";
|
|
29
|
-
import "./chunk-
|
|
30
|
-
import "./chunk-
|
|
29
|
+
import "./chunk-T5U6IM4C.js";
|
|
30
|
+
import "./chunk-TSERKWCX.js";
|
|
31
31
|
import "./chunk-33FNCQSY.js";
|
|
32
32
|
import "./chunk-6PVPNMXU.js";
|
|
33
|
-
import "./chunk-
|
|
33
|
+
import "./chunk-DIT4V3XH.js";
|
|
34
34
|
import "./chunk-IRH27ZC2.js";
|
|
35
35
|
import "./chunk-QHWCP53L.js";
|
|
36
36
|
import "./chunk-MOHAWIAW.js";
|
|
37
|
-
import "./chunk-
|
|
37
|
+
import "./chunk-3PRJYMXC.js";
|
|
38
38
|
import "./chunk-O6GEWCJA.js";
|
|
39
39
|
import "./chunk-T26EAKDL.js";
|
|
40
40
|
import "./chunk-ZPJWUGCS.js";
|
|
41
41
|
import "./chunk-CPBF7KYF.js";
|
|
42
|
-
import "./chunk-
|
|
42
|
+
import "./chunk-4S4OEQ6U.js";
|
|
43
43
|
import "./chunk-KRXPRVGL.js";
|
|
44
44
|
import "./chunk-A5YZ3FA2.js";
|
|
45
45
|
import "./chunk-YAVY33G4.js";
|
|
@@ -51,7 +51,7 @@ import "./chunk-WVAESIM6.js";
|
|
|
51
51
|
import "./chunk-K623ENWT.js";
|
|
52
52
|
import "./chunk-AQ37AY7B.js";
|
|
53
53
|
import "./chunk-432XCUHF.js";
|
|
54
|
-
import "./chunk-
|
|
54
|
+
import "./chunk-HU5TUALO.js";
|
|
55
55
|
import "./chunk-XC656O42.js";
|
|
56
56
|
import "./chunk-NAVJD2PQ.js";
|
|
57
57
|
import "./chunk-QYPT3QUD.js";
|
|
@@ -60,19 +60,20 @@ import "./chunk-DGEIYUC3.js";
|
|
|
60
60
|
import "./chunk-MPHPFVKK.js";
|
|
61
61
|
import "./chunk-GLNBDYUX.js";
|
|
62
62
|
import "./chunk-DJ2GSRLV.js";
|
|
63
|
-
import "./chunk-
|
|
63
|
+
import "./chunk-QZKYZCN3.js";
|
|
64
64
|
import "./chunk-MGSSJT27.js";
|
|
65
65
|
import "./chunk-2J3OJGTL.js";
|
|
66
66
|
import "./chunk-P3QQPMQA.js";
|
|
67
67
|
import "./chunk-6O5DVH27.js";
|
|
68
68
|
import "./chunk-GLCZKT5V.js";
|
|
69
69
|
import "./chunk-2DNKEBXY.js";
|
|
70
|
-
import "./chunk-
|
|
70
|
+
import "./chunk-PX5DNLSA.js";
|
|
71
|
+
import "./chunk-WOJZWRAZ.js";
|
|
71
72
|
import "./chunk-VGC4I5JJ.js";
|
|
72
73
|
import "./chunk-E4WHKETF.js";
|
|
73
74
|
import "./chunk-ZPPP6VCL.js";
|
|
74
75
|
import "./chunk-D7D7RXIJ.js";
|
|
75
|
-
import "./chunk-
|
|
76
|
+
import "./chunk-BOGOR4HB.js";
|
|
76
77
|
import "./chunk-46UV252V.js";
|
|
77
78
|
import "./chunk-ZBVS26BY.js";
|
|
78
79
|
import "./chunk-BFHXDAR7.js";
|
|
@@ -83,7 +84,7 @@ import "./chunk-W4RQUHY3.js";
|
|
|
83
84
|
import "./chunk-LKRMNRSN.js";
|
|
84
85
|
import "./chunk-3RXUYQJI.js";
|
|
85
86
|
import "./chunk-VOQXFAY5.js";
|
|
86
|
-
import "./chunk-
|
|
87
|
+
import "./chunk-KGJGEEVR.js";
|
|
87
88
|
import "./chunk-75DOP5OR.js";
|
|
88
89
|
import "./chunk-DMTGGOSA.js";
|
|
89
90
|
import "./chunk-YQ3U5MUC.js";
|
|
@@ -9,27 +9,27 @@ import {
|
|
|
9
9
|
handleError,
|
|
10
10
|
handleMaxTurnsExceededError,
|
|
11
11
|
handleToolError
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
} from "./chunk-FZFP7RZI.js";
|
|
13
|
+
import "./chunk-A4VTILZT.js";
|
|
14
14
|
import "./chunk-GOFAQQZA.js";
|
|
15
15
|
import "./chunk-5M6IDOMF.js";
|
|
16
16
|
import "./chunk-TWPJO254.js";
|
|
17
17
|
import "./chunk-H6XPXXMH.js";
|
|
18
18
|
import "./chunk-Z7JILXGX.js";
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-T5U6IM4C.js";
|
|
20
|
+
import "./chunk-TSERKWCX.js";
|
|
21
21
|
import "./chunk-33FNCQSY.js";
|
|
22
22
|
import "./chunk-6PVPNMXU.js";
|
|
23
|
-
import "./chunk-
|
|
23
|
+
import "./chunk-DIT4V3XH.js";
|
|
24
24
|
import "./chunk-IRH27ZC2.js";
|
|
25
25
|
import "./chunk-QHWCP53L.js";
|
|
26
26
|
import "./chunk-MOHAWIAW.js";
|
|
27
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-3PRJYMXC.js";
|
|
28
28
|
import "./chunk-O6GEWCJA.js";
|
|
29
29
|
import "./chunk-T26EAKDL.js";
|
|
30
30
|
import "./chunk-ZPJWUGCS.js";
|
|
31
31
|
import "./chunk-CPBF7KYF.js";
|
|
32
|
-
import "./chunk-
|
|
32
|
+
import "./chunk-4S4OEQ6U.js";
|
|
33
33
|
import "./chunk-KRXPRVGL.js";
|
|
34
34
|
import "./chunk-A5YZ3FA2.js";
|
|
35
35
|
import "./chunk-YAVY33G4.js";
|
|
@@ -41,7 +41,7 @@ import "./chunk-WVAESIM6.js";
|
|
|
41
41
|
import "./chunk-K623ENWT.js";
|
|
42
42
|
import "./chunk-AQ37AY7B.js";
|
|
43
43
|
import "./chunk-432XCUHF.js";
|
|
44
|
-
import "./chunk-
|
|
44
|
+
import "./chunk-HU5TUALO.js";
|
|
45
45
|
import "./chunk-XC656O42.js";
|
|
46
46
|
import "./chunk-NAVJD2PQ.js";
|
|
47
47
|
import "./chunk-QYPT3QUD.js";
|
|
@@ -50,19 +50,20 @@ import "./chunk-DGEIYUC3.js";
|
|
|
50
50
|
import "./chunk-MPHPFVKK.js";
|
|
51
51
|
import "./chunk-GLNBDYUX.js";
|
|
52
52
|
import "./chunk-DJ2GSRLV.js";
|
|
53
|
-
import "./chunk-
|
|
53
|
+
import "./chunk-QZKYZCN3.js";
|
|
54
54
|
import "./chunk-MGSSJT27.js";
|
|
55
55
|
import "./chunk-2J3OJGTL.js";
|
|
56
56
|
import "./chunk-P3QQPMQA.js";
|
|
57
57
|
import "./chunk-6O5DVH27.js";
|
|
58
58
|
import "./chunk-GLCZKT5V.js";
|
|
59
59
|
import "./chunk-2DNKEBXY.js";
|
|
60
|
-
import "./chunk-
|
|
60
|
+
import "./chunk-PX5DNLSA.js";
|
|
61
|
+
import "./chunk-WOJZWRAZ.js";
|
|
61
62
|
import "./chunk-VGC4I5JJ.js";
|
|
62
63
|
import "./chunk-E4WHKETF.js";
|
|
63
64
|
import "./chunk-ZPPP6VCL.js";
|
|
64
65
|
import "./chunk-D7D7RXIJ.js";
|
|
65
|
-
import "./chunk-
|
|
66
|
+
import "./chunk-BOGOR4HB.js";
|
|
66
67
|
import "./chunk-46UV252V.js";
|
|
67
68
|
import "./chunk-ZBVS26BY.js";
|
|
68
69
|
import "./chunk-BFHXDAR7.js";
|
|
@@ -73,8 +74,8 @@ import "./chunk-W4RQUHY3.js";
|
|
|
73
74
|
import "./chunk-LKRMNRSN.js";
|
|
74
75
|
import "./chunk-3RXUYQJI.js";
|
|
75
76
|
import "./chunk-VOQXFAY5.js";
|
|
76
|
-
import "./chunk-
|
|
77
|
-
import "./chunk-
|
|
77
|
+
import "./chunk-RHTTKJTP.js";
|
|
78
|
+
import "./chunk-KGJGEEVR.js";
|
|
78
79
|
import "./chunk-75DOP5OR.js";
|
|
79
80
|
import "./chunk-DMTGGOSA.js";
|
|
80
81
|
import "./chunk-YQ3U5MUC.js";
|
|
@@ -7,26 +7,26 @@ import {
|
|
|
7
7
|
readWorktreeSession,
|
|
8
8
|
readWorktreeSessionMarker,
|
|
9
9
|
worktreeBranchForSlug
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-A4VTILZT.js";
|
|
11
11
|
import "./chunk-GOFAQQZA.js";
|
|
12
12
|
import "./chunk-5M6IDOMF.js";
|
|
13
13
|
import "./chunk-TWPJO254.js";
|
|
14
14
|
import "./chunk-H6XPXXMH.js";
|
|
15
15
|
import "./chunk-Z7JILXGX.js";
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-T5U6IM4C.js";
|
|
17
|
+
import "./chunk-TSERKWCX.js";
|
|
18
18
|
import "./chunk-33FNCQSY.js";
|
|
19
19
|
import "./chunk-6PVPNMXU.js";
|
|
20
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-DIT4V3XH.js";
|
|
21
21
|
import "./chunk-IRH27ZC2.js";
|
|
22
22
|
import "./chunk-QHWCP53L.js";
|
|
23
23
|
import "./chunk-MOHAWIAW.js";
|
|
24
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-3PRJYMXC.js";
|
|
25
25
|
import "./chunk-O6GEWCJA.js";
|
|
26
26
|
import "./chunk-T26EAKDL.js";
|
|
27
27
|
import "./chunk-ZPJWUGCS.js";
|
|
28
28
|
import "./chunk-CPBF7KYF.js";
|
|
29
|
-
import "./chunk-
|
|
29
|
+
import "./chunk-4S4OEQ6U.js";
|
|
30
30
|
import "./chunk-KRXPRVGL.js";
|
|
31
31
|
import "./chunk-A5YZ3FA2.js";
|
|
32
32
|
import "./chunk-YAVY33G4.js";
|
|
@@ -38,7 +38,7 @@ import "./chunk-WVAESIM6.js";
|
|
|
38
38
|
import "./chunk-K623ENWT.js";
|
|
39
39
|
import "./chunk-AQ37AY7B.js";
|
|
40
40
|
import "./chunk-432XCUHF.js";
|
|
41
|
-
import "./chunk-
|
|
41
|
+
import "./chunk-HU5TUALO.js";
|
|
42
42
|
import "./chunk-XC656O42.js";
|
|
43
43
|
import "./chunk-NAVJD2PQ.js";
|
|
44
44
|
import "./chunk-QYPT3QUD.js";
|
|
@@ -47,14 +47,15 @@ import "./chunk-DGEIYUC3.js";
|
|
|
47
47
|
import "./chunk-MPHPFVKK.js";
|
|
48
48
|
import "./chunk-GLNBDYUX.js";
|
|
49
49
|
import "./chunk-DJ2GSRLV.js";
|
|
50
|
-
import "./chunk-
|
|
50
|
+
import "./chunk-QZKYZCN3.js";
|
|
51
51
|
import "./chunk-MGSSJT27.js";
|
|
52
52
|
import "./chunk-2J3OJGTL.js";
|
|
53
53
|
import "./chunk-P3QQPMQA.js";
|
|
54
54
|
import "./chunk-6O5DVH27.js";
|
|
55
55
|
import "./chunk-GLCZKT5V.js";
|
|
56
56
|
import "./chunk-2DNKEBXY.js";
|
|
57
|
-
import "./chunk-
|
|
57
|
+
import "./chunk-PX5DNLSA.js";
|
|
58
|
+
import "./chunk-WOJZWRAZ.js";
|
|
58
59
|
import "./chunk-VGC4I5JJ.js";
|
|
59
60
|
import "./chunk-E4WHKETF.js";
|
|
60
61
|
import "./chunk-ZPPP6VCL.js";
|
|
@@ -64,7 +65,7 @@ import {
|
|
|
64
65
|
ToolDisplayNames,
|
|
65
66
|
ToolNames
|
|
66
67
|
} from "./chunk-D7D7RXIJ.js";
|
|
67
|
-
import "./chunk-
|
|
68
|
+
import "./chunk-BOGOR4HB.js";
|
|
68
69
|
import "./chunk-46UV252V.js";
|
|
69
70
|
import "./chunk-ZBVS26BY.js";
|
|
70
71
|
import "./chunk-BFHXDAR7.js";
|
|
@@ -3,26 +3,26 @@
|
|
|
3
3
|
import {
|
|
4
4
|
ExitPlanModeTool,
|
|
5
5
|
PLAN_EXIT_APPROVED_LLM_CONTENT_PREFIXES
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-A4VTILZT.js";
|
|
7
7
|
import "./chunk-GOFAQQZA.js";
|
|
8
8
|
import "./chunk-5M6IDOMF.js";
|
|
9
9
|
import "./chunk-TWPJO254.js";
|
|
10
10
|
import "./chunk-H6XPXXMH.js";
|
|
11
11
|
import "./chunk-Z7JILXGX.js";
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-T5U6IM4C.js";
|
|
13
|
+
import "./chunk-TSERKWCX.js";
|
|
14
14
|
import "./chunk-33FNCQSY.js";
|
|
15
15
|
import "./chunk-6PVPNMXU.js";
|
|
16
|
-
import "./chunk-
|
|
16
|
+
import "./chunk-DIT4V3XH.js";
|
|
17
17
|
import "./chunk-IRH27ZC2.js";
|
|
18
18
|
import "./chunk-QHWCP53L.js";
|
|
19
19
|
import "./chunk-MOHAWIAW.js";
|
|
20
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-3PRJYMXC.js";
|
|
21
21
|
import "./chunk-O6GEWCJA.js";
|
|
22
22
|
import "./chunk-T26EAKDL.js";
|
|
23
23
|
import "./chunk-ZPJWUGCS.js";
|
|
24
24
|
import "./chunk-CPBF7KYF.js";
|
|
25
|
-
import "./chunk-
|
|
25
|
+
import "./chunk-4S4OEQ6U.js";
|
|
26
26
|
import "./chunk-KRXPRVGL.js";
|
|
27
27
|
import "./chunk-A5YZ3FA2.js";
|
|
28
28
|
import "./chunk-YAVY33G4.js";
|
|
@@ -34,7 +34,7 @@ import "./chunk-WVAESIM6.js";
|
|
|
34
34
|
import "./chunk-K623ENWT.js";
|
|
35
35
|
import "./chunk-AQ37AY7B.js";
|
|
36
36
|
import "./chunk-432XCUHF.js";
|
|
37
|
-
import "./chunk-
|
|
37
|
+
import "./chunk-HU5TUALO.js";
|
|
38
38
|
import "./chunk-XC656O42.js";
|
|
39
39
|
import "./chunk-NAVJD2PQ.js";
|
|
40
40
|
import "./chunk-QYPT3QUD.js";
|
|
@@ -43,19 +43,20 @@ import "./chunk-DGEIYUC3.js";
|
|
|
43
43
|
import "./chunk-MPHPFVKK.js";
|
|
44
44
|
import "./chunk-GLNBDYUX.js";
|
|
45
45
|
import "./chunk-DJ2GSRLV.js";
|
|
46
|
-
import "./chunk-
|
|
46
|
+
import "./chunk-QZKYZCN3.js";
|
|
47
47
|
import "./chunk-MGSSJT27.js";
|
|
48
48
|
import "./chunk-2J3OJGTL.js";
|
|
49
49
|
import "./chunk-P3QQPMQA.js";
|
|
50
50
|
import "./chunk-6O5DVH27.js";
|
|
51
51
|
import "./chunk-GLCZKT5V.js";
|
|
52
52
|
import "./chunk-2DNKEBXY.js";
|
|
53
|
-
import "./chunk-
|
|
53
|
+
import "./chunk-PX5DNLSA.js";
|
|
54
|
+
import "./chunk-WOJZWRAZ.js";
|
|
54
55
|
import "./chunk-VGC4I5JJ.js";
|
|
55
56
|
import "./chunk-E4WHKETF.js";
|
|
56
57
|
import "./chunk-ZPPP6VCL.js";
|
|
57
58
|
import "./chunk-D7D7RXIJ.js";
|
|
58
|
-
import "./chunk-
|
|
59
|
+
import "./chunk-BOGOR4HB.js";
|
|
59
60
|
import "./chunk-46UV252V.js";
|
|
60
61
|
import "./chunk-ZBVS26BY.js";
|
|
61
62
|
import "./chunk-BFHXDAR7.js";
|
|
@@ -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-67T3P7XI.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-3JN75CIQ.js");
|
|
407
407
|
let handle;
|
|
408
408
|
try {
|
|
409
409
|
handle = await runQwenServe(parsed.options, {
|