@qwen-code/qwen-code 0.23.5-dev.codemode-responses.20260915.f024b37689 → 0.23.5-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/computer-use/SKILL.md +24 -3
- package/bundled/qc-helper/docs/configuration/model-providers.md +43 -0
- package/bundled/qc-helper/docs/configuration/settings.md +10 -9
- package/bundled/qc-helper/docs/extension/agent-plugins.md +1 -0
- package/bundled/qc-helper/docs/extension/introduction.md +49 -0
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +39 -4
- package/bundled/qc-helper/docs/features/channels/overview.md +12 -0
- package/bundled/qc-helper/docs/features/commands.md +57 -52
- package/bundled/qc-helper/docs/features/computer-use.md +1 -1
- package/bundled/qc-helper/docs/features/goals.md +8 -0
- package/bundled/qc-helper/docs/features/hooks.md +16 -0
- package/bundled/qc-helper/docs/qwen-serve.md +3 -1
- package/bundled/workflow-authoring/SKILL.md +48 -22
- package/chunks/{MaxSizedBox-BFMIFJWT.js → MaxSizedBox-FCF6M53W.js} +40 -43
- package/chunks/{StandaloneSessionPicker-4ZH7MOVG.js → StandaloneSessionPicker-V635V72I.js} +60 -63
- package/chunks/{acp-startup-profiler-RUQNTNU5.js → acp-startup-profiler-MOOU37VM.js} +2 -2
- package/chunks/{acp-subagent-executor-AHMVA4P3.js → acp-subagent-executor-TND6W2O5.js} +46 -47
- package/chunks/{acpAgent-UMAJ3XR3.js → acpAgent-3DPWZTNC.js} +954 -322
- package/chunks/{agent-CXB2CCQN.js → agent-KIHGINKN.js} +27 -30
- package/chunks/{agent-headless-7D5ZC736.js → agent-headless-EJ4QOUSM.js} +27 -30
- package/chunks/{anthropicContentGenerator-H5YPXIDE.js → anthropicContentGenerator-4FGOM5LK.js} +46 -64
- package/chunks/{artifact-tool-MFGORTWZ.js → artifact-tool-MUTNH4NI.js} +1 -1
- package/chunks/{askUserQuestion-WS4GUT7C.js → askUserQuestion-AKIRLVB5.js} +1 -1
- package/chunks/bareMode-QWKZPLPX.js +14 -0
- package/chunks/{bridge-A2WKX6IK.js → bridge-MUX5YJZT.js} +46 -49
- package/chunks/{ca-GZ4FDJU2.js → ca-WC3A5B3Q.js} +12 -1
- package/chunks/{channel-management-service-AFVIT4VH.js → channel-management-service-RRILWSXX.js} +4 -4
- package/chunks/{channel-settings-store-AXJIN7HG.js → channel-settings-store-7CBIRZER.js} +51 -54
- package/chunks/{channel-worker-group-JR6JOELM.js → channel-worker-group-3DUJFZJR.js} +8 -8
- package/chunks/{channel-worker-manager-AVKJEZFL.js → channel-worker-manager-E5UW2VLA.js} +8 -8
- package/chunks/{channel-worker-supervisor-OOYY7BAQ.js → channel-worker-supervisor-VN33GSEC.js} +5 -5
- package/chunks/{chunk-2YMRRI2C.js → chunk-2C5TR6HN.js} +82 -9
- package/chunks/{chunk-YDFOHRS5.js → chunk-2GP6BQ2J.js} +1 -1
- package/chunks/{chunk-RN6BU77T.js → chunk-347O2YZJ.js} +158 -290
- package/chunks/{chunk-LTINUI3O.js → chunk-36NRLIR6.js} +10 -8
- package/chunks/{chunk-AXZMWAJV.js → chunk-36SDZ2Q4.js} +8 -0
- package/chunks/{chunk-QR4Q425T.js → chunk-3BZI5GDP.js} +1 -1
- package/chunks/{chunk-C3YMBSLR.js → chunk-3HTUE6ZR.js} +3 -3
- package/chunks/{chunk-QS5Q5F42.js → chunk-3LLEB5CU.js} +2 -2
- package/chunks/{chunk-FPPG5Y3W.js → chunk-3UGMLA4V.js} +10 -8
- package/chunks/{chunk-66N6C4EH.js → chunk-3WILPKTJ.js} +2 -2
- package/chunks/{chunk-SROLVJFY.js → chunk-3WWPEFMX.js} +1 -1
- package/chunks/{chunk-ZKIAGIGH.js → chunk-3XBUCOWS.js} +1 -1
- package/chunks/{chunk-6RQFMGN2.js → chunk-43Y26NPF.js} +3 -3
- package/chunks/{chunk-INGBUYL6.js → chunk-4FLUQWJ4.js} +1 -1
- package/chunks/{chunk-S77FFY67.js → chunk-4JFLRHNE.js} +1 -1
- package/chunks/{chunk-MJHLKWGJ.js → chunk-4QPVZA5J.js} +70 -23
- package/chunks/{chunk-XX5HQLCZ.js → chunk-6OTF7TTE.js} +32 -1
- package/chunks/{chunk-4Y2I3CI3.js → chunk-6USYH3EU.js} +99 -6
- package/chunks/{chunk-Q3TFRP5G.js → chunk-7D4CV7JH.js} +102 -9
- package/chunks/{chunk-EWJTAP3Y.js → chunk-7O5PYQ3M.js} +20 -1
- package/chunks/chunk-ADN5KESB.js +28 -0
- package/chunks/chunk-AKRSSKUT.js +229 -0
- package/chunks/{chunk-54YUXX7X.js → chunk-AQP3H22J.js} +1 -1
- package/chunks/{chunk-EQWKIA72.js → chunk-AUX2FL5T.js} +24 -7
- package/chunks/{chunk-YGFJ6BRT.js → chunk-AZCTY64Z.js} +1 -1
- package/chunks/{chunk-QLX4D55R.js → chunk-B5TJK7B3.js} +1 -1
- package/chunks/{chunk-HXMDDII6.js → chunk-B6RMK4ED.js} +4 -4
- package/chunks/{chunk-UCKM6KCJ.js → chunk-BHG3H6OZ.js} +1 -1
- package/chunks/{chunk-JLF2AQAL.js → chunk-BHVF3R6B.js} +7 -5
- package/chunks/{chunk-HFJSQ4GL.js → chunk-BTICBRPL.js} +1 -1
- package/chunks/{chunk-KZCK5JUN.js → chunk-C3T6HPNM.js} +1 -1
- package/chunks/{chunk-FCLMJS6N.js → chunk-CDDP4ONL.js} +164 -27
- package/chunks/{chunk-Y3ZXDBUL.js → chunk-CQPM66MG.js} +4 -4
- package/chunks/{chunk-WKVZES7O.js → chunk-CXONOVBN.js} +1 -1
- package/chunks/{chunk-TYBRGFYL.js → chunk-CXY6BICQ.js} +501 -479
- package/chunks/{chunk-W23HOFDK.js → chunk-D3KVGQUV.js} +1 -1
- package/chunks/{chunk-LMJSPC55.js → chunk-D7JMO2GP.js} +3 -7
- package/chunks/{chunk-CXXAZ2LZ.js → chunk-DC4ZNGH4.js} +1 -1
- package/chunks/{chunk-FMLBBXHB.js → chunk-DRAX5YAI.js} +2 -2
- package/chunks/{chunk-DOTF2PF2.js → chunk-DRD6VBNH.js} +1 -1
- package/chunks/chunk-DX6JTDMR.js +105 -0
- package/chunks/{chunk-MNRK6MIH.js → chunk-E2VSBAFA.js} +53 -11
- package/chunks/{chunk-QJKR2P2K.js → chunk-EIBECN2J.js} +3 -3
- package/chunks/{chunk-LWWRJRCD.js → chunk-ESBYWATJ.js} +1 -1
- package/chunks/{chunk-3544ZEGZ.js → chunk-FASYATAZ.js} +5 -7
- package/chunks/{chunk-6YUS5JCV.js → chunk-FBY32737.js} +4 -4
- package/chunks/{chunk-LBWIJ5T7.js → chunk-FCPJXKDG.js} +10 -7
- package/chunks/{chunk-FX6GJIPZ.js → chunk-FEDFZBGR.js} +3 -3
- package/chunks/{chunk-DQ4LBRZN.js → chunk-FIJODK52.js} +3 -3
- package/chunks/{chunk-HVSRWLOW.js → chunk-FX6PZBOV.js} +3 -3
- package/chunks/{chunk-L6DIANLD.js → chunk-G45B3INR.js} +1 -1
- package/chunks/{chunk-EYLUKEYW.js → chunk-GI7SLDOI.js} +2 -2
- package/chunks/chunk-GJKP6XOB.js +1092 -0
- package/chunks/{chunk-I6YJZGHS.js → chunk-GSAOVDTH.js} +9 -9
- package/chunks/{chunk-XK4UQSIR.js → chunk-H6L4NEAT.js} +1 -1
- package/chunks/{chunk-GMCEFKNR.js → chunk-HNFKYKHH.js} +103 -22
- package/chunks/{chunk-6XDB3FR4.js → chunk-HX4WXX3H.js} +301 -138
- package/chunks/{chunk-HG46TTAG.js → chunk-HXUI5D4H.js} +1 -1
- package/chunks/{chunk-QI4WBHPF.js → chunk-HYHSMTRA.js} +4 -4
- package/chunks/{chunk-ZUKC5J6Q.js → chunk-IKBEIDOH.js} +14 -14
- package/chunks/{chunk-LCAJ63TF.js → chunk-INN5ORKX.js} +1 -1
- package/chunks/{chunk-GNV2SFO7.js → chunk-IVFTLUZD.js} +26 -1
- package/chunks/{chunk-GNKSR3FU.js → chunk-IXO2OCIP.js} +2 -2
- package/chunks/{chunk-SNT634Q6.js → chunk-K4XMAIRX.js} +30 -33
- package/chunks/{chunk-WBP64MZR.js → chunk-KAYC5FBN.js} +5269 -2785
- package/chunks/chunk-KEM7MWS7.js +3541 -0
- package/chunks/{chunk-ADQUK6WA.js → chunk-KVC7HZWK.js} +1 -1
- package/chunks/{chunk-UQXURNLM.js → chunk-KVQ3QL4K.js} +3 -3
- package/chunks/{chunk-7U5G6JXI.js → chunk-KWYTSSTJ.js} +105 -6
- package/chunks/{chunk-Q4G2YPI4.js → chunk-L2A5VBDL.js} +3019 -2352
- package/chunks/{chunk-WD6YQI5M.js → chunk-L3SNMEDW.js} +1 -1
- package/chunks/{chunk-BYUAT5OC.js → chunk-L7TJUPNR.js} +19 -3
- package/chunks/{chunk-ABNX6E6K.js → chunk-LFKXIOGC.js} +1 -1
- package/chunks/{chunk-GFAK6DYU.js → chunk-LO2UWNO5.js} +2 -2
- package/chunks/{chunk-67ZDP7UX.js → chunk-M22WLKLI.js} +5 -5
- package/chunks/{chunk-54B2LTKP.js → chunk-M23GFJ5B.js} +24 -5
- package/chunks/{chunk-VGY2RGXL.js → chunk-M4U2LTD2.js} +1 -1
- package/chunks/{chunk-ZNI3YJHS.js → chunk-MFDKHGTD.js} +1 -1
- package/chunks/{chunk-R7OO56VZ.js → chunk-MMRGG6R4.js} +1 -1
- package/chunks/{chunk-E6IR653O.js → chunk-MO4XID7S.js} +1 -1
- package/chunks/{chunk-NJ4ZNDVP.js → chunk-NKTMUPHJ.js} +3 -6
- package/chunks/{chunk-4DTFTPTU.js → chunk-NQ272MQG.js} +1 -1
- package/chunks/{chunk-DWKFTUGI.js → chunk-OALXNGUA.js} +6 -6
- package/chunks/{chunk-FBDHP23D.js → chunk-OSG23MR3.js} +1 -1
- package/chunks/{chunk-NJ2OFVUX.js → chunk-P42KMMU6.js} +860 -1
- package/chunks/{chunk-5KJ54DY3.js → chunk-PF7GAP6K.js} +60 -58
- package/chunks/{chunk-MQRLLBMQ.js → chunk-PPJSG2PU.js} +2 -2
- package/chunks/{chunk-EPVEPTI3.js → chunk-PZRXWQUA.js} +753 -18
- package/chunks/{chunk-VI5UVPOB.js → chunk-Q54O3EIA.js} +30 -28
- package/chunks/{chunk-QTUQV33C.js → chunk-QGEISOJ2.js} +4 -4
- package/chunks/{chunk-XKRYQOHS.js → chunk-QHSOINX6.js} +2 -2
- package/chunks/{chunk-Z6Q7I37O.js → chunk-QIPLWW6Q.js} +1 -1
- package/chunks/chunk-QMENOK5T.js +1246 -0
- package/chunks/chunk-QT6Z2IBF.js +347 -0
- package/chunks/{chunk-TBSCTWKF.js → chunk-RN6A53UJ.js} +25 -0
- package/chunks/{chunk-E7ZTAOJZ.js → chunk-RRI764F7.js} +21 -19
- package/chunks/{chunk-YI2YCNSP.js → chunk-SENYKRII.js} +1 -1
- package/chunks/chunk-SFHX5G2S.js +2796 -0
- package/chunks/chunk-SK3RZOPS.js +34 -0
- package/chunks/{chunk-SKYOAH4Z.js → chunk-SOLRBF7L.js} +13 -9
- package/chunks/{chunk-5WLF44DS.js → chunk-SSWTA7CH.js} +12 -12
- package/chunks/{chunk-IAS753HG.js → chunk-SYMXYRM5.js} +11 -2
- package/chunks/{chunk-FGROOEKM.js → chunk-TDKUXSJO.js} +34 -6
- package/chunks/{chunk-ZJ7JQUGY.js → chunk-TKF4JINY.js} +1 -1
- package/chunks/{chunk-ZOQ6HC7U.js → chunk-TPY6HW55.js} +4 -4
- package/chunks/{chunk-EDB556X7.js → chunk-TRZ22SG5.js} +1 -1
- package/chunks/{chunk-FHSOZSBO.js → chunk-TXTCM3TC.js} +4 -4
- package/chunks/{chunk-5ODRE7E5.js → chunk-U4AASWUQ.js} +28 -12
- package/chunks/{chunk-PPE7VUMD.js → chunk-UQGRJTDK.js} +2 -2
- package/chunks/{chunk-JO67LVXW.js → chunk-UZSB57EV.js} +6 -8
- package/chunks/{chunk-UY4OCBX4.js → chunk-V4JJAVHQ.js} +2 -2
- package/chunks/chunk-VEXUA6DX.js +1026 -0
- package/chunks/{chunk-ME4JBHSB.js → chunk-VQDWCQOE.js} +2 -0
- package/chunks/{chunk-ZC75SULX.js → chunk-VU3XMZ5I.js} +23 -4
- package/chunks/{chunk-A2UYI473.js → chunk-WL36KHUQ.js} +6 -6
- package/chunks/{chunk-IWOJ2FHG.js → chunk-WNQIJTOP.js} +8 -8
- package/chunks/{chunk-IANIY25T.js → chunk-WSJI6ODG.js} +99 -30
- package/chunks/{chunk-3CKAOJ4L.js → chunk-WZWTY7SG.js} +6 -6
- package/chunks/{chunk-EKMJR7M3.js → chunk-X7AYIXC7.js} +1 -1
- package/chunks/{chunk-IBRQG2MP.js → chunk-XAJZFGD2.js} +11 -11
- package/chunks/{chunk-VRQZESKP.js → chunk-XICCGDWF.js} +2 -2
- package/chunks/{chunk-L5R4D5T4.js → chunk-Y2KJC55Y.js} +12 -7
- package/chunks/{chunk-2S2WIGCM.js → chunk-Y4NNIGYO.js} +1 -1
- package/chunks/{chunk-J7LBAKDH.js → chunk-YL3UJML3.js} +7 -7
- package/chunks/{chunk-GSS4SZNG.js → chunk-YP2K3WOS.js} +40 -56
- package/chunks/{chunk-ZZUXUBEB.js → chunk-YQQ2U7AS.js} +8 -5
- package/chunks/{chunk-FAWTMDX7.js → chunk-YXHY6BKS.js} +15 -0
- package/chunks/{chunk-FIP5QS2U.js → chunk-YZXSDPOQ.js} +140 -39
- package/chunks/{chunk-WATHOB6X.js → chunk-ZFHKUQZ4.js} +3 -3
- package/chunks/{chunk-R5OA3ONY.js → chunk-ZMYKNKET.js} +6 -6
- package/chunks/{codex-subagent-executor-LANZAZPH.js → codex-subagent-executor-AEAIQZDC.js} +48 -49
- package/chunks/{config-utils-CRK2LQPA.js → config-utils-KX2YS725.js} +43 -46
- package/chunks/{contextCommand-GY5X3LIY.js → contextCommand-RV6Y5LNJ.js} +41 -44
- package/chunks/{core-runtime-IJIV2LHP.js → core-runtime-ZI4RTOJQ.js} +45 -48
- package/chunks/{create-sub-session-MNIVRHGB.js → create-sub-session-BBWFQARJ.js} +46 -48
- package/chunks/{daemon-NJB4PWZ7.js → daemon-INCM4VBX.js} +3 -1
- package/chunks/{daemon-git-worktree-guard-W6Z2BGDH.js → daemon-git-worktree-guard-KECEMV6A.js} +39 -42
- package/chunks/{daemon-status-provider-TJF3APU3.js → daemon-status-provider-NULJNAEV.js} +53 -56
- package/chunks/{daemon-trust-policy-6INCISDU.js → daemon-trust-policy-S4KWGPV3.js} +47 -50
- package/chunks/{daemon-trust-policy-monitor-JRTAQG54.js → daemon-trust-policy-monitor-546N5ZVL.js} +47 -50
- package/chunks/{de-VGY3VNBU.js → de-6AVKPTXQ.js} +11 -0
- package/chunks/{deferred-core-runtime-2JRTPTNM.js → deferred-core-runtime-T23ZT443.js} +39 -42
- package/chunks/{dist-NIOJXMGY.js → dist-4P3ZJYGI.js} +1 -1
- package/chunks/{dist-VDLSBCLM.js → dist-7MGRENQ5.js} +1 -1
- package/chunks/{dist-SE4J6Z4O.js → dist-BNW423XT.js} +326 -77
- package/chunks/{dist-TFGETXFN.js → dist-CESMUYGN.js} +4 -4
- package/chunks/{dist-MPUZZOG5.js → dist-DBBOFWSC.js} +1 -1
- package/chunks/{dist-T6DDPDLQ.js → dist-G5UMXIGF.js} +1 -1
- package/chunks/{dist-PA7WPFVE.js → dist-UXVNLQHG.js} +3 -3
- package/chunks/{dist-GUB7QRYA.js → dist-VA4LREAQ.js} +2 -2
- package/chunks/{dist-2QYIVNS6.js → dist-XDRTR4QP.js} +1 -1
- package/chunks/{edit-JDIXXCYB.js → edit-CMSQB7NP.js} +27 -30
- package/chunks/{en-E5ZO5TZW.js → en-56QLKXS2.js} +23 -1
- package/chunks/{enter-worktree-CAARFWBI.js → enter-worktree-DA6A4XC5.js} +3 -3
- package/chunks/{enterPlanMode-YTNTBZBN.js → enterPlanMode-UDPMNESD.js} +27 -30
- package/chunks/{environment-UAI5L52V.js → environment-TSQJUTPV.js} +42 -45
- package/chunks/{errors-J4UCDCW5.js → errors-RIVYJS6T.js} +41 -44
- package/chunks/{exit-worktree-JXGGUOBP.js → exit-worktree-4H6Z2VQI.js} +3 -3
- package/chunks/{exitPlanMode-YMWJ2EO7.js → exitPlanMode-BYBBFN2T.js} +27 -30
- package/chunks/{fast-path-MBAN7TK3.js → fast-path-F2CYDDZ4.js} +4 -4
- package/chunks/{fast-path-settings-XDYX7X5Z.js → fast-path-settings-N2VGRGDJ.js} +2 -2
- package/chunks/{fr-UAZJJH5N.js → fr-EBUDHJL3.js} +11 -0
- package/chunks/{glob-YEM24E3Z.js → glob-Z2JMJKKN.js} +27 -30
- package/chunks/{goal-tools-LJIVH5T6.js → goal-tools-HXVVLGCV.js} +27 -30
- package/chunks/{handleAutoUpdate-DYCSYDYL.js → handleAutoUpdate-FZP45KOR.js} +43 -46
- package/chunks/{i18n-PTAV7SN3.js → i18n-OTB62AKW.js} +40 -43
- package/chunks/{image-gen-5G2TQ3DY.js → image-gen-HIAZCB5T.js} +6 -7
- package/chunks/{initializer-MPXTKQA4.js → initializer-4JXZEC4B.js} +47 -50
- package/chunks/{installationInfo-U5EFA3OL.js → installationInfo-2IJV5QKC.js} +39 -42
- package/chunks/{ja-2RITCMAJ.js → ja-NCDT4CGV.js} +11 -0
- package/chunks/{list-YOE25QUI.js → list-KQSQ4A5G.js} +50 -53
- package/chunks/{llm-ZZ2WNQMC.js → llm-LSUBOJAR.js} +154 -974
- package/chunks/{llm-content-generator-CG2HRJZC.js → llm-content-generator-MLIONRXE.js} +17 -12
- package/chunks/{loadedSettingsAdapter-NPGWGURF.js → loadedSettingsAdapter-TZTTNRHI.js} +47 -50
- package/chunks/{loggingContentGenerator-TUL6SJVL.js → loggingContentGenerator-TUPEXFMM.js} +31 -34
- package/chunks/{loop-wakeup-VG6CGBQA.js → loop-wakeup-ZBVRI6VH.js} +1 -1
- package/chunks/{managed-npm-update-YUDSCJP3.js → managed-npm-update-WEA5XMFZ.js} +40 -43
- package/chunks/{mcp-EX3GDQVO.js → mcp-TFDTUPIA.js} +47 -50
- package/chunks/{model-configuration-6DEKTXJI.js → model-configuration-ZCAKKIOF.js} +48 -51
- package/chunks/{modelConfigUtils-4NA2MHEE.js → modelConfigUtils-J3ZPW7ZK.js} +41 -44
- package/chunks/{monitor-PPUGNAWR.js → monitor-CI7YE7MT.js} +29 -32
- package/chunks/{nonInteractiveCli-6TW2XYP5.js → nonInteractiveCli-GPT3TVOK.js} +96 -98
- package/chunks/{notebook-edit-4MUXHZHT.js → notebook-edit-3WCVRNGL.js} +27 -30
- package/chunks/{openaiContentGenerator-5J73W5XZ.js → openaiContentGenerator-OGILGUZE.js} +12 -17
- package/chunks/{openaiResponsesContentGenerator-AWRYZLJU.js → openaiResponsesContentGenerator-NXOXUPFM.js} +45 -13
- package/chunks/{pidfile-M7WELKBB.js → pidfile-GBTBIGHF.js} +39 -42
- package/chunks/{process-registry-X6ZCASEN.js → process-registry-7LAPI3ZB.js} +1 -1
- package/chunks/{processUtils-SPRINFNY.js → processUtils-O4II3RYH.js} +2 -2
- package/chunks/{prompt-terminal-ledger-25BRD7FX.js → prompt-terminal-ledger-ILIXZI3E.js} +40 -43
- package/chunks/{pt-5ZF7ZQUV.js → pt-FYYFWYUC.js} +11 -0
- package/chunks/{qwenContentGenerator-H5AAKXPC.js → qwenContentGenerator-I4LRYADV.js} +33 -36
- package/chunks/{qwenOAuth2-WIEUEFEY.js → qwenOAuth2-3J66TOT5.js} +6 -7
- package/chunks/{read-file-ILGEFPB3.js → read-file-G4XKW2CS.js} +5 -9
- package/chunks/{record-artifact-PXMNP7GZ.js → record-artifact-L3CFJOMA.js} +2 -2
- package/chunks/{report-findings-W6GR7SYZ.js → report-findings-LY5HQY4K.js} +3 -3
- package/chunks/{resumeHistoryUtils-RB52QOCH.js → resumeHistoryUtils-YPJU4XFE.js} +44 -47
- package/chunks/{ripGrep-O6QAFHQK.js → ripGrep-AAKMALLM.js} +7 -11
- package/chunks/{ru-7BNZFQKG.js → ru-RHEB3RNS.js} +11 -0
- package/chunks/{run-qwen-serve-5NO3TKUL.js → run-qwen-serve-ZVEKGS7Y.js} +177 -98
- package/chunks/{runtime-G2YUYMSZ.js → runtime-SJCRYNPA.js} +52 -55
- package/chunks/safe-mode-KLGUG54M.js +11 -0
- package/chunks/sandbox-UIXL423Z.js +146 -0
- package/chunks/sandboxConfig-CY343YNJ.js +114 -0
- package/chunks/{scheduled-tasks-HDHV3URA.js → scheduled-tasks-5UGBEVNZ.js} +50 -53
- package/chunks/{scheduler-6MDJX2ZK.js → scheduler-GCZYLZ2P.js} +41 -44
- package/chunks/{sdk-exporters-http-3R2TRQHE.js → sdk-exporters-http-DR4G663K.js} +1 -1
- package/chunks/{sdk-impl-4WF3VZ2F.js → sdk-impl-SJR26MQF.js} +3 -3
- package/chunks/{send-message-UMJKN27Q.js → send-message-DN76MXDX.js} +6 -6
- package/chunks/{serve-Z2EJQYKB.js → serve-2XXQLVK2.js} +48 -51
- package/chunks/{server-JTNBK3LH.js → server-UHMKPCAZ.js} +408 -211
- package/chunks/{session-5YK2BXH4.js → session-ZLUK7E4P.js} +108 -108
- package/chunks/{session-attachments-root-QO3VFJS6.js → session-attachments-root-DHQM5IEZ.js} +39 -42
- package/chunks/{session-pr-refresh-OTK3HCJZ.js → session-pr-refresh-3OMTQWCZ.js} +48 -51
- package/chunks/{settings-2VKLACYV.js → settings-P4DHIIUP.js} +50 -53
- package/chunks/{shell-64NAVGMS.js → shell-IMFUVQQ5.js} +27 -30
- package/chunks/{skill-R3ALMLLM.js → skill-NB5RJGZW.js} +7 -11
- package/chunks/{skill-settings-HZ34TUMP.js → skill-settings-IXG5CTQO.js} +47 -50
- package/chunks/{spawnChannel-XGFWHEIK.js → spawnChannel-Q3YALTCJ.js} +44 -45
- package/chunks/{standalone-update-R32Y3XRR.js → standalone-update-H5OJ7MM7.js} +41 -44
- package/chunks/{start-opentui-ui-YGJOUE2H.js → start-opentui-ui-JKAIWGF7.js} +733 -386
- package/chunks/{startInteractiveUI-5ZEVKSFF.js → startInteractiveUI-YRPOT6GH.js} +370 -337
- package/chunks/task-create-75HVPEAH.js +1 -1
- package/chunks/{team-create-GCVUXJLE.js → team-create-2XTBYRJF.js} +31 -34
- package/chunks/{team-plan-approval-NOL62FJD.js → team-plan-approval-CFNWW7ZQ.js} +27 -30
- package/chunks/{terminal-image-renderer-WG5TLPGC.js → terminal-image-renderer-UDPJPGPQ.js} +39 -42
- package/chunks/{theme-manager-HDS4YFPW.js → theme-manager-SK57EKMO.js} +39 -42
- package/chunks/{tool-search-HMT5GYUR.js → tool-search-ZHTJU2MV.js} +5 -9
- package/chunks/{total-session-admission-Y5RCHEXO.js → total-session-admission-UUZBDQCG.js} +47 -50
- package/chunks/{tree-sitter-LSORDVZ3.js → tree-sitter-4D7QS7F6.js} +1 -1
- package/chunks/{tree-sitter-bash-UARELQ6C.js → tree-sitter-bash-VEJGF5XF.js} +1 -1
- package/chunks/{trustedFolders-3Y2WCXMR.js → trustedFolders-4LDBLNTS.js} +40 -43
- package/chunks/{update-relaunch-MTJ32SLF.js → update-relaunch-LI7GRP36.js} +5 -5
- package/chunks/{updateCheck-YFX3VY6O.js → updateCheck-PKSSORPO.js} +43 -46
- package/chunks/{useAutoAcceptIndicator-FCHNQPMD.js → useAutoAcceptIndicator-I32UEQPI.js} +50 -53
- package/chunks/{validateNonInterActiveAuth-HUFQKCGG.js → validateNonInterActiveAuth-YFPCYYNL.js} +93 -95
- package/chunks/{version-S5TGWCA3.js → version-4MTL4JVU.js} +1 -1
- package/chunks/{web-fetch-23M7BYHB.js → web-fetch-O6RG6ISB.js} +9 -13
- package/chunks/{web-search-F5PNIQUA.js → web-search-JHAXVEMD.js} +9 -14
- package/chunks/{web-shell-static-T7UGLVE4.js → web-shell-static-FFWCUUZS.js} +8 -4
- package/chunks/{workflow-BLJLID2C.js → workflow-O7L6VDYU.js} +396 -113
- package/chunks/{workspace-providers-status-UH7KLZDT.js → workspace-providers-status-WRX6CJM4.js} +53 -56
- package/chunks/{workspace-registration-store-3SA3V7BA.js → workspace-registration-store-7G4E7YPY.js} +1 -1
- package/chunks/{workspace-registry-C6C6EKQ5.js → workspace-registry-SXIMGT4D.js} +47 -50
- package/chunks/{workspace-runtime-coordinator-RAI6XDJB.js → workspace-runtime-coordinator-7DOEHXYT.js} +47 -50
- package/chunks/{workspace-service-H7UTJYJU.js → workspace-service-HDXOZMYC.js} +53 -56
- package/chunks/{workspace-skills-status-FPVC7XXK.js → workspace-skills-status-VN4L37CA.js} +50 -53
- package/chunks/{workspace-trust-reconciler-JS7A6UIF.js → workspace-trust-reconciler-XEBW5FUL.js} +57 -60
- package/chunks/{write-file-GQGG7NBQ.js → write-file-LKX4ETIO.js} +29 -32
- package/chunks/{zh-V2EYTYJP.js → zh-F76MZTL3.js} +23 -1
- package/chunks/{zh-TW-7PRVUGLW.js → zh-TW-S3YTQ4DS.js} +23 -1
- package/chunks/{zoom-image-EC43KL4H.js → zoom-image-RDPRTP4B.js} +5 -9
- package/cli.js +19 -15
- package/export-transcript-document.css +1 -1
- package/export-transcript-document.js +151 -150
- package/locales/ca.js +19 -2
- package/locales/de.js +18 -0
- package/locales/en.js +33 -2
- package/locales/fr.js +18 -0
- package/locales/ja.js +18 -0
- package/locales/pt.js +18 -0
- package/locales/ru.js +18 -0
- package/locales/zh-TW.js +33 -2
- package/locales/zh.js +33 -2
- package/package.json +3 -3
- package/web-shell/assets/{abnfDiagram-VCTEODGH-BtpzKw3A.js → abnfDiagram-VCTEODGH-RxykUDmi.js} +1 -1
- package/web-shell/assets/{arc-CQiVKZJP.js → arc-CZpgGCJC.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-ekIPBb2d.js → architectureDiagram-5GKGNRK7-BHSMzNDT.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-BrRWkWri.js → blockDiagram-NRAW4CY4-Bn4mF9SZ.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-qYS8CYZ3.js → c4Diagram-UCG6FXSJ-CBM-Bj6t.js} +1 -1
- package/web-shell/assets/channel-DFYs_LlK.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-ZasyyEZm.js → chunk-2Q5K7J3B-D5Fin58O.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-C_IzCGeA.js → chunk-5VM5RSS4-CY05weF7.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-C25NZOyD.js → chunk-F27PBJKO-3neZnj5Y.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-XPOHNSGX.js → chunk-G27WJ6UU-Cd7EU4BE.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-BQBh0Xni.js → chunk-JWPE2WC7-DwK1mqFw.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-CoShjpX7.js → chunk-LCL6LL3I-Sl7vY22C.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-BwRmCDSz.js → chunk-POPQ4Y6H-BXNzpbVg.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-DSzE5-Mw.js → chunk-SVP7TREG-DjjButcp.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-BQSQv30h.js → chunk-XXDRQBXY-DNOiCjOJ.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-DnGrKXoM.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-DnGrKXoM.js +1 -0
- package/web-shell/assets/{cose-bilkent-JH36ORCC-XVUVTHVo.js → cose-bilkent-JH36ORCC-BUnker7a.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-CrsKx4lQ.js → cynefin-OW5HDTMX-DcUgdWE5.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-BPeZEuHw.js → cynefinDiagram-5FMLGOSQ-CvDKsZsL.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-D31cQ2Qs.js → dagre-3AP2YEHR-jpCmUbr1.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-zyiG097Q.js → diagram-S7CK7UJ4-DBe_bKE5.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-Br3vtfsy.js → diagram-UQ7AKVKN-oXvPpDgs.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-Bxkhjx4u.js → diagram-VSXAHHWV-BD7-_SGh.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-BQH8QiDk.js → diagram-VX7I27RA-DOJL0wub.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-B_aQ1cw0.js → diagram-Z3DM3KII-DRIiodDD.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-B9N7BRQE.js → ebnfDiagram-PWID7BFC-Db31Ulmb.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-Cx6Hb1Re.js → erDiagram-SSCWMZ5O-CVHhwI2_.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-DTuLP7GU.js → flowDiagram-A5DVABFB-DWOFy1FK.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-DYS3d-sL.js → ganttDiagram-EL5Y4UJY-C0sxQtPd.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-Cp0EGx04.js → gitGraphDiagram-WWUBYQGX-CNituBYC.js} +1 -1
- package/web-shell/assets/index-B15NlwB8.js +2213 -0
- package/web-shell/assets/index-BSrS0tQ6.css +36 -0
- package/web-shell/assets/{index-45-LkPDB.js → index-gm9tLk7h.js} +1 -1
- package/web-shell/assets/{infoDiagram-RXCK75RN-9--kukiT.js → infoDiagram-RXCK75RN-CxhJYtIR.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-CGBdsDLD.js → ishikawaDiagram-5VMMS53U-By2mchUy.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-DeXhcscd.js → journeyDiagram-EYS64GPL-CVH-OweI.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-CFdvsU3b.js → kanban-definition-3QL26DDD-Cc9dQXLy.js} +1 -1
- package/web-shell/assets/knowledge-Dg9788h4.svg +1 -0
- package/web-shell/assets/{layout-DAnwQ3KB.js → layout-C_60ysHw.js} +1 -1
- package/web-shell/assets/{linear-CTo7v7Nh.js → linear-BvAVfqwu.js} +1 -1
- package/web-shell/assets/{mermaid.core-jggSxF1i.js → mermaid.core-C3CoBKAc.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-DzIepvlJ.js → mindmap-definition-FBJOCRG2-Cuu8Q8LM.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-BFGS9GJv.js → pegDiagram-XKGWAZYB-DmAeyDO2.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-B2UUcNIT.js → pieDiagram-E7YTZNPT-B7vbB_xv.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-BgM6htrX.js → quadrantDiagram-AXDQQJYC-BqOBkRR7.js} +1 -1
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-Dk9cS7N-.js → railroadDiagram-O6MQD6OU-sI06lZIu.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-C9oRg7xi.js → requirementDiagram-EFPCY7ZU-Bg13d10S.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-B-_c7GzI.js → sankeyDiagram-P5KCCOFB-WFOzZHrR.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-R0M-347u.js → sequenceDiagram-WJ2MYXX4-CCdRbA4E.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-Df0f8UAW.js → sizeCapture-X5ZJPWSS-BH5F3bGg.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-CsUEfAA-.js → stateDiagram-HBIQ2CUA-NwS2X3QB.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-1aU2JZXO.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-9OGHVSrx.js → swimlanes-XN3QIQJK-Bm38pM28.js} +1 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-Dp-u6kQG.js +8 -0
- package/web-shell/assets/{timeline-definition-24CTP7MA-DAfGqS2B.js → timeline-definition-24CTP7MA-Do-agLSo.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-CKATpwHi.js → vennDiagram-4TSXK5OY-aggLfZzl.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-CQHdhTrm.js → wardleyDiagram-VM6X3IG4-D5JR3mXX.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-5k9NLqlY.js → xychartDiagram-S5SC5T6Z-DhtLDuXs.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/chunk-4OQSG35W.js +0 -1416
- package/chunks/chunk-7MIBD3LG.js +0 -137
- package/chunks/chunk-ARDHE6MM.js +0 -235
- package/chunks/chunk-C75BXMPM.js +0 -169
- package/chunks/chunk-ERU3SDXT.js +0 -27
- package/chunks/chunk-FPGTNKCP.js +0 -251
- package/chunks/chunk-JIJ65YKA.js +0 -2812
- package/chunks/chunk-JL6APGBX.js +0 -43
- package/chunks/chunk-SGXJQP5Q.js +0 -4172
- package/chunks/chunk-TPEV2QHG.js +0 -514
- package/chunks/chunk-YVWS4SLL.js +0 -137
- package/web-shell/assets/channel-DSQQnOZj.js +0 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-V94ta08R.js +0 -1
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-V94ta08R.js +0 -1
- package/web-shell/assets/index-H8um-iEl.js +0 -2207
- package/web-shell/assets/index-n6N-2a3v.css +0 -36
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-CnSuTPJ2.js +0 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-Bb7TcWQw.js +0 -8
- package/chunks/{chunk-QZW6WRB7.js → chunk-5NUKK2DT.js} +2 -2
- package/chunks/{chunk-JS73NNWF.js → chunk-FUSEMYFX.js} +0 -0
- package/chunks/{chunk-SVWWF5TZ.js → chunk-WVURIAEE.js} +3 -3
- package/chunks/{task-update-RI7QNVDP.js → task-update-3LSYQDRW.js} +4 -4
|
@@ -1,20 +1,23 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
listCommand
|
|
5
|
+
} from "./chunk-FBY32737.js";
|
|
6
|
+
import {
|
|
7
|
+
getErrorMessage as getErrorMessage2
|
|
8
|
+
} from "./chunk-B6RMK4ED.js";
|
|
9
|
+
import {
|
|
10
|
+
loadSandboxConfig
|
|
11
|
+
} from "./chunk-QT6Z2IBF.js";
|
|
3
12
|
import {
|
|
4
13
|
CUSTOM_SANDBOX_IMAGE_ENV_VAR
|
|
5
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-B5TJK7B3.js";
|
|
6
15
|
import {
|
|
7
16
|
isOwnInterfaceAddress
|
|
8
17
|
} from "./chunk-24FVUD5P.js";
|
|
9
18
|
import {
|
|
10
19
|
serveCommand
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import {
|
|
13
|
-
listCommand
|
|
14
|
-
} from "./chunk-6YUS5JCV.js";
|
|
15
|
-
import {
|
|
16
|
-
getErrorMessage as getErrorMessage2
|
|
17
|
-
} from "./chunk-HXMDDII6.js";
|
|
20
|
+
} from "./chunk-ZMYKNKET.js";
|
|
18
21
|
import {
|
|
19
22
|
OBSERVED_CONTACT_MAX_FRESH_WITHIN_SECONDS,
|
|
20
23
|
ObservedChannelContactStore
|
|
@@ -56,18 +59,18 @@ import {
|
|
|
56
59
|
import {
|
|
57
60
|
resolvePath
|
|
58
61
|
} from "./chunk-Y53DG2HA.js";
|
|
59
|
-
import {
|
|
60
|
-
normalizeSkillNames,
|
|
61
|
-
resolveSkillSettings
|
|
62
|
-
} from "./chunk-LMJSPC55.js";
|
|
63
62
|
import {
|
|
64
63
|
CLI_VERSION
|
|
65
|
-
} from "./chunk-
|
|
64
|
+
} from "./chunk-3LLEB5CU.js";
|
|
66
65
|
import {
|
|
67
66
|
collectProviderModelsForProtocol,
|
|
68
67
|
getAuthTypeFromEnv,
|
|
69
68
|
resolveCliGenerationConfig
|
|
70
|
-
} from "./chunk-
|
|
69
|
+
} from "./chunk-UZSB57EV.js";
|
|
70
|
+
import {
|
|
71
|
+
normalizeSkillNames,
|
|
72
|
+
resolveSkillSettings
|
|
73
|
+
} from "./chunk-D7JMO2GP.js";
|
|
71
74
|
import {
|
|
72
75
|
channelLoopPath,
|
|
73
76
|
createChannel,
|
|
@@ -85,17 +88,17 @@ import {
|
|
|
85
88
|
resolveChannelLocale,
|
|
86
89
|
selectFirstModel,
|
|
87
90
|
sessionsPath
|
|
88
|
-
} from "./chunk-
|
|
91
|
+
} from "./chunk-WZWTY7SG.js";
|
|
89
92
|
import {
|
|
90
93
|
getExtensionManager,
|
|
91
94
|
requestChoicePluginNonInteractive,
|
|
92
95
|
requestConsentNonInteractive,
|
|
93
96
|
requestConsentOrFail,
|
|
94
97
|
resolveExtensionCommandScope
|
|
95
|
-
} from "./chunk-
|
|
98
|
+
} from "./chunk-E2VSBAFA.js";
|
|
96
99
|
import {
|
|
97
100
|
parseChannelConfig
|
|
98
|
-
} from "./chunk-
|
|
101
|
+
} from "./chunk-SYMXYRM5.js";
|
|
99
102
|
import {
|
|
100
103
|
findCliEntryPath
|
|
101
104
|
} from "./chunk-V6WHFGST.js";
|
|
@@ -113,6 +116,10 @@ import {
|
|
|
113
116
|
isChannelStartupReportAckMessage,
|
|
114
117
|
isChannelWebhookTaskMessage
|
|
115
118
|
} from "./chunk-STUJ7IMZ.js";
|
|
119
|
+
import {
|
|
120
|
+
normalizeWorkerDiagnostic,
|
|
121
|
+
sanitizeWorkerDiagnostic
|
|
122
|
+
} from "./chunk-L3SNMEDW.js";
|
|
116
123
|
import {
|
|
117
124
|
CHANNEL_DAEMON_WORKER_SENTINEL,
|
|
118
125
|
CHANNEL_WORKER_HEARTBEAT_INTERVAL_MS,
|
|
@@ -121,13 +128,13 @@ import {
|
|
|
121
128
|
QWEN_DAEMON_WORKSPACE_ENV,
|
|
122
129
|
QWEN_SERVER_TOKEN_ENV
|
|
123
130
|
} from "./chunk-GYTKQYDB.js";
|
|
124
|
-
import {
|
|
125
|
-
normalizeWorkerDiagnostic,
|
|
126
|
-
sanitizeWorkerDiagnostic
|
|
127
|
-
} from "./chunk-WD6YQI5M.js";
|
|
128
131
|
import {
|
|
129
132
|
normalizeServeChannelSelection
|
|
130
133
|
} from "./chunk-GDWE23OR.js";
|
|
134
|
+
import {
|
|
135
|
+
CHANNEL_WORKER_KILL_GRACE_MS,
|
|
136
|
+
CHANNEL_WORKER_STOP_GRACE_MS
|
|
137
|
+
} from "./chunk-CJ3DHN5I.js";
|
|
131
138
|
import {
|
|
132
139
|
ChannelDeliveryError,
|
|
133
140
|
MAX_CHANNEL_DELIVERIES_IN_FLIGHT,
|
|
@@ -135,15 +142,11 @@ import {
|
|
|
135
142
|
isChannelDeliveryMessage
|
|
136
143
|
} from "./chunk-RKFGE7JH.js";
|
|
137
144
|
import {
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
} from "./chunk-CJ3DHN5I.js";
|
|
145
|
+
redactLogCredentials
|
|
146
|
+
} from "./chunk-M5GB774H.js";
|
|
141
147
|
import {
|
|
142
148
|
EXTERNAL_TOOL_GUARD_TOKEN_ENV
|
|
143
149
|
} from "./chunk-3VUENPWF.js";
|
|
144
|
-
import {
|
|
145
|
-
redactLogCredentials
|
|
146
|
-
} from "./chunk-M5GB774H.js";
|
|
147
150
|
import {
|
|
148
151
|
pidFilePath,
|
|
149
152
|
readServiceInfo,
|
|
@@ -158,7 +161,7 @@ import {
|
|
|
158
161
|
clearAccount,
|
|
159
162
|
loadAccount,
|
|
160
163
|
saveAccount
|
|
161
|
-
} from "./chunk-
|
|
164
|
+
} from "./chunk-ESBYWATJ.js";
|
|
162
165
|
import {
|
|
163
166
|
AcpBridge,
|
|
164
167
|
ChannelLoopScheduler,
|
|
@@ -169,15 +172,15 @@ import {
|
|
|
169
172
|
isChannelProactiveDeliveryError,
|
|
170
173
|
sanitizeLogText,
|
|
171
174
|
sanitizePromptText
|
|
172
|
-
} from "./chunk-
|
|
175
|
+
} from "./chunk-PZRXWQUA.js";
|
|
173
176
|
import {
|
|
174
177
|
assembleMcpServers,
|
|
175
178
|
getPendingGatedMcpServers,
|
|
176
179
|
mcpCommand
|
|
177
|
-
} from "./chunk-
|
|
180
|
+
} from "./chunk-WL36KHUQ.js";
|
|
178
181
|
import {
|
|
179
182
|
loadSettings
|
|
180
|
-
} from "./chunk-
|
|
183
|
+
} from "./chunk-RRI764F7.js";
|
|
181
184
|
import {
|
|
182
185
|
detectSystemLanguage,
|
|
183
186
|
getCurrentLanguage,
|
|
@@ -185,32 +188,19 @@ import {
|
|
|
185
188
|
resolveLanguage,
|
|
186
189
|
resolveLanguageSetting,
|
|
187
190
|
t
|
|
188
|
-
} from "./chunk-
|
|
191
|
+
} from "./chunk-GSAOVDTH.js";
|
|
189
192
|
import {
|
|
190
193
|
isFileSourcedEnvKey,
|
|
191
194
|
loadEnvironment
|
|
192
|
-
} from "./chunk-
|
|
195
|
+
} from "./chunk-NKTMUPHJ.js";
|
|
193
196
|
import {
|
|
194
197
|
resolveAcpChannelFallback,
|
|
195
198
|
scrubAndReportInheritedLoaderEnv
|
|
196
|
-
} from "./chunk-
|
|
197
|
-
import {
|
|
198
|
-
hideBin,
|
|
199
|
-
yargs_default
|
|
200
|
-
} from "./chunk-XFSFZCM5.js";
|
|
201
|
-
import {
|
|
202
|
-
readPackageUpSync
|
|
203
|
-
} from "./chunk-2EAZ43JQ.js";
|
|
204
|
-
import {
|
|
205
|
-
getCliVersion
|
|
206
|
-
} from "./chunk-54YUXX7X.js";
|
|
207
|
-
import {
|
|
208
|
-
getPackageJson
|
|
209
|
-
} from "./chunk-W3N5XAZ6.js";
|
|
199
|
+
} from "./chunk-6OTF7TTE.js";
|
|
210
200
|
import {
|
|
211
201
|
isWorkspaceTrusted,
|
|
212
202
|
parseJsoncObject
|
|
213
|
-
} from "./chunk-
|
|
203
|
+
} from "./chunk-NQ272MQG.js";
|
|
214
204
|
import {
|
|
215
205
|
require_strip_json_comments
|
|
216
206
|
} from "./chunk-NPQ5ZKRP.js";
|
|
@@ -232,7 +222,17 @@ import {
|
|
|
232
222
|
removeChannelMemoryEntries,
|
|
233
223
|
removePeerController,
|
|
234
224
|
updateChannelMemoryEntry
|
|
235
|
-
} from "./chunk-
|
|
225
|
+
} from "./chunk-347O2YZJ.js";
|
|
226
|
+
import {
|
|
227
|
+
hideBin,
|
|
228
|
+
yargs_default
|
|
229
|
+
} from "./chunk-XFSFZCM5.js";
|
|
230
|
+
import {
|
|
231
|
+
readPackageUpSync
|
|
232
|
+
} from "./chunk-2EAZ43JQ.js";
|
|
233
|
+
import {
|
|
234
|
+
getCliVersion
|
|
235
|
+
} from "./chunk-AQP3H22J.js";
|
|
236
236
|
import {
|
|
237
237
|
FINDING_BASELINES,
|
|
238
238
|
FINDING_CONFIDENCES,
|
|
@@ -241,10 +241,10 @@ import {
|
|
|
241
241
|
FINDING_SEVERITIES,
|
|
242
242
|
FINDING_SOURCES,
|
|
243
243
|
compressFindingSummary
|
|
244
|
-
} from "./chunk-
|
|
244
|
+
} from "./chunk-X7AYIXC7.js";
|
|
245
245
|
import {
|
|
246
246
|
resolveReviewWorkflowConcurrency
|
|
247
|
-
} from "./chunk-
|
|
247
|
+
} from "./chunk-SFHX5G2S.js";
|
|
248
248
|
import {
|
|
249
249
|
Config,
|
|
250
250
|
DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD,
|
|
@@ -260,12 +260,9 @@ import {
|
|
|
260
260
|
checkForExtensionUpdate,
|
|
261
261
|
getScopedEnvContents,
|
|
262
262
|
ideContextStore,
|
|
263
|
-
isBareMode,
|
|
264
263
|
isExtensionCommittedWithWarningsError,
|
|
265
264
|
isGitIgnored,
|
|
266
|
-
isSafeModeEnv,
|
|
267
265
|
isToolEnabled,
|
|
268
|
-
isTruthy,
|
|
269
266
|
isUnusableScriptEntry,
|
|
270
267
|
loadServerHierarchicalMemory,
|
|
271
268
|
normalizeProxyUrl,
|
|
@@ -274,7 +271,7 @@ import {
|
|
|
274
271
|
sanitizeFilenameComponent,
|
|
275
272
|
unquoteCStylePath,
|
|
276
273
|
updateSetting
|
|
277
|
-
} from "./chunk-
|
|
274
|
+
} from "./chunk-KAYC5FBN.js";
|
|
278
275
|
import {
|
|
279
276
|
parsePositiveIntegerEnv
|
|
280
277
|
} from "./chunk-6PVPNMXU.js";
|
|
@@ -282,14 +279,6 @@ import {
|
|
|
282
279
|
nextFireTime,
|
|
283
280
|
parseCron
|
|
284
281
|
} from "./chunk-5EZRLTLQ.js";
|
|
285
|
-
import {
|
|
286
|
-
parseBooleanEnvFlag,
|
|
287
|
-
require_dist,
|
|
288
|
-
resolveTelemetrySettings
|
|
289
|
-
} from "./chunk-NJ2OFVUX.js";
|
|
290
|
-
import {
|
|
291
|
-
resolveBundleDir
|
|
292
|
-
} from "./chunk-ACHCT36C.js";
|
|
293
282
|
import {
|
|
294
283
|
describeSessionKind,
|
|
295
284
|
listLiveSessions
|
|
@@ -297,52 +286,66 @@ import {
|
|
|
297
286
|
import {
|
|
298
287
|
isSameProcess
|
|
299
288
|
} from "./chunk-CH2YDT6X.js";
|
|
289
|
+
import {
|
|
290
|
+
parseBooleanEnvFlag,
|
|
291
|
+
require_dist,
|
|
292
|
+
resolveTelemetrySettings
|
|
293
|
+
} from "./chunk-P42KMMU6.js";
|
|
294
|
+
import {
|
|
295
|
+
isSafeModeEnv
|
|
296
|
+
} from "./chunk-ADN5KESB.js";
|
|
297
|
+
import {
|
|
298
|
+
resolveBundleDir
|
|
299
|
+
} from "./chunk-ACHCT36C.js";
|
|
300
300
|
import {
|
|
301
301
|
APPROVAL_MODES
|
|
302
302
|
} from "./chunk-JX6XHPTX.js";
|
|
303
|
+
import {
|
|
304
|
+
isBareMode,
|
|
305
|
+
isTruthy
|
|
306
|
+
} from "./chunk-SK3RZOPS.js";
|
|
303
307
|
import {
|
|
304
308
|
require_proper_lockfile
|
|
305
309
|
} from "./chunk-MLXTMF7H.js";
|
|
306
310
|
import {
|
|
307
311
|
BUILT_IN_OUTPUT_STYLES
|
|
308
|
-
} from "./chunk-
|
|
312
|
+
} from "./chunk-36SDZ2Q4.js";
|
|
309
313
|
import {
|
|
310
314
|
addDaemonRequestAttribute
|
|
311
|
-
} from "./chunk-
|
|
315
|
+
} from "./chunk-G45B3INR.js";
|
|
312
316
|
import {
|
|
313
317
|
parseLineTolerant
|
|
314
|
-
} from "./chunk-
|
|
318
|
+
} from "./chunk-CDDP4ONL.js";
|
|
315
319
|
import {
|
|
316
320
|
Mutex
|
|
317
321
|
} from "./chunk-VGC4I5JJ.js";
|
|
318
322
|
import {
|
|
319
323
|
getAllMemoryFilenames,
|
|
320
324
|
setMemoryFilename
|
|
321
|
-
} from "./chunk-
|
|
322
|
-
import {
|
|
323
|
-
DEFAULT_QWEN_EMBEDDING_MODEL,
|
|
324
|
-
VERTEX_ADC_HINT,
|
|
325
|
-
hasVertexProjectConfigured
|
|
326
|
-
} from "./chunk-TPEV2QHG.js";
|
|
325
|
+
} from "./chunk-5NUKK2DT.js";
|
|
327
326
|
import {
|
|
328
327
|
atomicWriteFileSync,
|
|
329
328
|
atomicWriteJSON
|
|
330
329
|
} from "./chunk-XFFRI3WM.js";
|
|
330
|
+
import {
|
|
331
|
+
DEFAULT_QWEN_EMBEDDING_MODEL,
|
|
332
|
+
VERTEX_ADC_HINT,
|
|
333
|
+
hasVertexProjectConfigured
|
|
334
|
+
} from "./chunk-GJKP6XOB.js";
|
|
331
335
|
import {
|
|
332
336
|
isTlsVerificationDisabled
|
|
333
|
-
} from "./chunk-
|
|
337
|
+
} from "./chunk-7O5PYQ3M.js";
|
|
334
338
|
import {
|
|
335
339
|
recordChannelMemoryRecallMetrics,
|
|
336
340
|
redactUrlCredentials,
|
|
337
341
|
stripAnsiAndControl
|
|
338
|
-
} from "./chunk-
|
|
342
|
+
} from "./chunk-6USYH3EU.js";
|
|
339
343
|
import {
|
|
340
344
|
SchemaValidator,
|
|
341
345
|
ToolNames
|
|
342
346
|
} from "./chunk-RSWBT7AZ.js";
|
|
343
347
|
import {
|
|
344
348
|
FatalConfigError,
|
|
345
|
-
FatalSandboxError,
|
|
346
349
|
Storage,
|
|
347
350
|
createDebugLogger,
|
|
348
351
|
getErrorMessage,
|
|
@@ -373,167 +376,9 @@ import {
|
|
|
373
376
|
__commonJS,
|
|
374
377
|
__export,
|
|
375
378
|
__name,
|
|
376
|
-
__require,
|
|
377
379
|
__toESM
|
|
378
380
|
} from "./chunk-J2S4EL5Y.js";
|
|
379
381
|
|
|
380
|
-
// node_modules/command-exists/lib/command-exists.js
|
|
381
|
-
var require_command_exists = __commonJS({
|
|
382
|
-
"node_modules/command-exists/lib/command-exists.js"(exports, module) {
|
|
383
|
-
"use strict";
|
|
384
|
-
init_esbuild_shims();
|
|
385
|
-
var exec = __require("child_process").exec;
|
|
386
|
-
var execSync = __require("child_process").execSync;
|
|
387
|
-
var fs4 = __require("fs");
|
|
388
|
-
var path6 = __require("path");
|
|
389
|
-
var access2 = fs4.access;
|
|
390
|
-
var accessSync4 = fs4.accessSync;
|
|
391
|
-
var constants6 = fs4.constants || fs4;
|
|
392
|
-
var isUsingWindows = process.platform == "win32";
|
|
393
|
-
var fileNotExists = /* @__PURE__ */ __name(function(commandName, callback) {
|
|
394
|
-
access2(
|
|
395
|
-
commandName,
|
|
396
|
-
constants6.F_OK,
|
|
397
|
-
function(err) {
|
|
398
|
-
callback(!err);
|
|
399
|
-
}
|
|
400
|
-
);
|
|
401
|
-
}, "fileNotExists");
|
|
402
|
-
var fileNotExistsSync = /* @__PURE__ */ __name(function(commandName) {
|
|
403
|
-
try {
|
|
404
|
-
accessSync4(commandName, constants6.F_OK);
|
|
405
|
-
return false;
|
|
406
|
-
} catch (e) {
|
|
407
|
-
return true;
|
|
408
|
-
}
|
|
409
|
-
}, "fileNotExistsSync");
|
|
410
|
-
var localExecutable = /* @__PURE__ */ __name(function(commandName, callback) {
|
|
411
|
-
access2(
|
|
412
|
-
commandName,
|
|
413
|
-
constants6.F_OK | constants6.X_OK,
|
|
414
|
-
function(err) {
|
|
415
|
-
callback(null, !err);
|
|
416
|
-
}
|
|
417
|
-
);
|
|
418
|
-
}, "localExecutable");
|
|
419
|
-
var localExecutableSync = /* @__PURE__ */ __name(function(commandName) {
|
|
420
|
-
try {
|
|
421
|
-
accessSync4(commandName, constants6.F_OK | constants6.X_OK);
|
|
422
|
-
return true;
|
|
423
|
-
} catch (e) {
|
|
424
|
-
return false;
|
|
425
|
-
}
|
|
426
|
-
}, "localExecutableSync");
|
|
427
|
-
var commandExistsUnix = /* @__PURE__ */ __name(function(commandName, cleanedCommandName, callback) {
|
|
428
|
-
fileNotExists(commandName, function(isFile) {
|
|
429
|
-
if (!isFile) {
|
|
430
|
-
var child = exec(
|
|
431
|
-
"command -v " + cleanedCommandName + " 2>/dev/null && { echo >&1 " + cleanedCommandName + "; exit 0; }",
|
|
432
|
-
function(error, stdout, stderr) {
|
|
433
|
-
callback(null, !!stdout);
|
|
434
|
-
}
|
|
435
|
-
);
|
|
436
|
-
return;
|
|
437
|
-
}
|
|
438
|
-
localExecutable(commandName, callback);
|
|
439
|
-
});
|
|
440
|
-
}, "commandExistsUnix");
|
|
441
|
-
var commandExistsWindows = /* @__PURE__ */ __name(function(commandName, cleanedCommandName, callback) {
|
|
442
|
-
if (!/^(?!(?:.*\s|.*\.|\W+)$)(?:[a-zA-Z]:)?(?:(?:[^<>:"\|\?\*\n])+(?:\/\/|\/|\\\\|\\)?)+$/m.test(commandName)) {
|
|
443
|
-
callback(null, false);
|
|
444
|
-
return;
|
|
445
|
-
}
|
|
446
|
-
var child = exec(
|
|
447
|
-
"where " + cleanedCommandName,
|
|
448
|
-
function(error) {
|
|
449
|
-
if (error !== null) {
|
|
450
|
-
callback(null, false);
|
|
451
|
-
} else {
|
|
452
|
-
callback(null, true);
|
|
453
|
-
}
|
|
454
|
-
}
|
|
455
|
-
);
|
|
456
|
-
}, "commandExistsWindows");
|
|
457
|
-
var commandExistsUnixSync = /* @__PURE__ */ __name(function(commandName, cleanedCommandName) {
|
|
458
|
-
if (fileNotExistsSync(commandName)) {
|
|
459
|
-
try {
|
|
460
|
-
var stdout = execSync(
|
|
461
|
-
"command -v " + cleanedCommandName + " 2>/dev/null && { echo >&1 " + cleanedCommandName + "; exit 0; }"
|
|
462
|
-
);
|
|
463
|
-
return !!stdout;
|
|
464
|
-
} catch (error) {
|
|
465
|
-
return false;
|
|
466
|
-
}
|
|
467
|
-
}
|
|
468
|
-
return localExecutableSync(commandName);
|
|
469
|
-
}, "commandExistsUnixSync");
|
|
470
|
-
var commandExistsWindowsSync = /* @__PURE__ */ __name(function(commandName, cleanedCommandName, callback) {
|
|
471
|
-
if (!/^(?!(?:.*\s|.*\.|\W+)$)(?:[a-zA-Z]:)?(?:(?:[^<>:"\|\?\*\n])+(?:\/\/|\/|\\\\|\\)?)+$/m.test(commandName)) {
|
|
472
|
-
return false;
|
|
473
|
-
}
|
|
474
|
-
try {
|
|
475
|
-
var stdout = execSync("where " + cleanedCommandName, { stdio: [] });
|
|
476
|
-
return !!stdout;
|
|
477
|
-
} catch (error) {
|
|
478
|
-
return false;
|
|
479
|
-
}
|
|
480
|
-
}, "commandExistsWindowsSync");
|
|
481
|
-
var cleanInput = /* @__PURE__ */ __name(function(s) {
|
|
482
|
-
if (/[^A-Za-z0-9_\/:=-]/.test(s)) {
|
|
483
|
-
s = "'" + s.replace(/'/g, "'\\''") + "'";
|
|
484
|
-
s = s.replace(/^(?:'')+/g, "").replace(/\\'''/g, "\\'");
|
|
485
|
-
}
|
|
486
|
-
return s;
|
|
487
|
-
}, "cleanInput");
|
|
488
|
-
if (isUsingWindows) {
|
|
489
|
-
cleanInput = /* @__PURE__ */ __name(function(s) {
|
|
490
|
-
var isPathName = /[\\]/.test(s);
|
|
491
|
-
if (isPathName) {
|
|
492
|
-
var dirname42 = '"' + path6.dirname(s) + '"';
|
|
493
|
-
var basename12 = '"' + path6.basename(s) + '"';
|
|
494
|
-
return dirname42 + ":" + basename12;
|
|
495
|
-
}
|
|
496
|
-
return '"' + s + '"';
|
|
497
|
-
}, "cleanInput");
|
|
498
|
-
}
|
|
499
|
-
module.exports = /* @__PURE__ */ __name(function commandExists2(commandName, callback) {
|
|
500
|
-
var cleanedCommandName = cleanInput(commandName);
|
|
501
|
-
if (!callback && typeof Promise !== "undefined") {
|
|
502
|
-
return new Promise(function(resolve43, reject) {
|
|
503
|
-
commandExists2(commandName, function(error, output) {
|
|
504
|
-
if (output) {
|
|
505
|
-
resolve43(commandName);
|
|
506
|
-
} else {
|
|
507
|
-
reject(error);
|
|
508
|
-
}
|
|
509
|
-
});
|
|
510
|
-
});
|
|
511
|
-
}
|
|
512
|
-
if (isUsingWindows) {
|
|
513
|
-
commandExistsWindows(commandName, cleanedCommandName, callback);
|
|
514
|
-
} else {
|
|
515
|
-
commandExistsUnix(commandName, cleanedCommandName, callback);
|
|
516
|
-
}
|
|
517
|
-
}, "commandExists");
|
|
518
|
-
module.exports.sync = function(commandName) {
|
|
519
|
-
var cleanedCommandName = cleanInput(commandName);
|
|
520
|
-
if (isUsingWindows) {
|
|
521
|
-
return commandExistsWindowsSync(commandName, cleanedCommandName);
|
|
522
|
-
} else {
|
|
523
|
-
return commandExistsUnixSync(commandName, cleanedCommandName);
|
|
524
|
-
}
|
|
525
|
-
};
|
|
526
|
-
}
|
|
527
|
-
});
|
|
528
|
-
|
|
529
|
-
// node_modules/command-exists/index.js
|
|
530
|
-
var require_command_exists2 = __commonJS({
|
|
531
|
-
"node_modules/command-exists/index.js"(exports, module) {
|
|
532
|
-
init_esbuild_shims();
|
|
533
|
-
module.exports = require_command_exists();
|
|
534
|
-
}
|
|
535
|
-
});
|
|
536
|
-
|
|
537
382
|
// node_modules/punycode.js/punycode.js
|
|
538
383
|
var require_punycode = __commonJS({
|
|
539
384
|
"node_modules/punycode.js/punycode.js"(exports, module) {
|
|
@@ -1016,132 +861,6 @@ function normalizeDisabledToolList(raw) {
|
|
|
1016
861
|
}
|
|
1017
862
|
__name(normalizeDisabledToolList, "normalizeDisabledToolList");
|
|
1018
863
|
|
|
1019
|
-
// packages/cli/src/config/sandboxConfig.ts
|
|
1020
|
-
init_esbuild_shims();
|
|
1021
|
-
var import_command_exists = __toESM(require_command_exists2(), 1);
|
|
1022
|
-
import { spawnSync } from "node:child_process";
|
|
1023
|
-
import * as os from "node:os";
|
|
1024
|
-
var VALID_SANDBOX_COMMANDS = [
|
|
1025
|
-
"docker",
|
|
1026
|
-
"podman",
|
|
1027
|
-
"sandbox-exec"
|
|
1028
|
-
];
|
|
1029
|
-
function isSandboxCommand(value) {
|
|
1030
|
-
return VALID_SANDBOX_COMMANDS.includes(value);
|
|
1031
|
-
}
|
|
1032
|
-
__name(isSandboxCommand, "isSandboxCommand");
|
|
1033
|
-
var SANDBOX_PROBE_TIMEOUT_MS = 5e3;
|
|
1034
|
-
var probeCache = /* @__PURE__ */ new Map();
|
|
1035
|
-
function probeSandboxCommand(command) {
|
|
1036
|
-
if (command === "sandbox-exec") {
|
|
1037
|
-
return void 0;
|
|
1038
|
-
}
|
|
1039
|
-
if (probeCache.has(command)) {
|
|
1040
|
-
return probeCache.get(command);
|
|
1041
|
-
}
|
|
1042
|
-
const failure = runSandboxProbe(command);
|
|
1043
|
-
probeCache.set(command, failure);
|
|
1044
|
-
return failure;
|
|
1045
|
-
}
|
|
1046
|
-
__name(probeSandboxCommand, "probeSandboxCommand");
|
|
1047
|
-
function runSandboxProbe(command) {
|
|
1048
|
-
try {
|
|
1049
|
-
const result = spawnSync(command, ["version"], {
|
|
1050
|
-
encoding: "utf8",
|
|
1051
|
-
stdio: "pipe",
|
|
1052
|
-
timeout: SANDBOX_PROBE_TIMEOUT_MS
|
|
1053
|
-
});
|
|
1054
|
-
if (result.error) {
|
|
1055
|
-
return result.error.message;
|
|
1056
|
-
}
|
|
1057
|
-
if (result.status === 0) {
|
|
1058
|
-
return void 0;
|
|
1059
|
-
}
|
|
1060
|
-
const output = `${result.stderr ?? ""}
|
|
1061
|
-
${result.stdout ?? ""}`;
|
|
1062
|
-
const firstLine = output.split("\n").map((line) => line.trim()).find((line) => line.length > 0);
|
|
1063
|
-
const stripped = firstLine ? stripAnsiAndControl(firstLine).trim() : "";
|
|
1064
|
-
return stripped || `'${command} version' exited with ${result.status}`;
|
|
1065
|
-
} catch (error) {
|
|
1066
|
-
return error instanceof Error ? error.message : String(error);
|
|
1067
|
-
}
|
|
1068
|
-
}
|
|
1069
|
-
__name(runSandboxProbe, "runSandboxProbe");
|
|
1070
|
-
function getSandboxCommand(sandbox) {
|
|
1071
|
-
if (process.env["SANDBOX"]) {
|
|
1072
|
-
return "";
|
|
1073
|
-
}
|
|
1074
|
-
const environmentConfiguredSandbox = process.env["QWEN_SANDBOX"]?.toLowerCase().trim() ?? "";
|
|
1075
|
-
sandbox = environmentConfiguredSandbox?.length > 0 ? environmentConfiguredSandbox : sandbox;
|
|
1076
|
-
if (sandbox === "1" || sandbox === "true") sandbox = true;
|
|
1077
|
-
else if (sandbox === "0" || sandbox === "false" || !sandbox) sandbox = false;
|
|
1078
|
-
if (sandbox === false) {
|
|
1079
|
-
return "";
|
|
1080
|
-
}
|
|
1081
|
-
const sandboxSource = environmentConfiguredSandbox.length > 0 ? " (from QWEN_SANDBOX)" : "";
|
|
1082
|
-
if (typeof sandbox === "string" && sandbox) {
|
|
1083
|
-
if (!isSandboxCommand(sandbox)) {
|
|
1084
|
-
throw new FatalSandboxError(
|
|
1085
|
-
`Invalid sandbox command '${sandbox}'. Must be one of ${VALID_SANDBOX_COMMANDS.join(
|
|
1086
|
-
", "
|
|
1087
|
-
)}`
|
|
1088
|
-
);
|
|
1089
|
-
}
|
|
1090
|
-
if (import_command_exists.default.sync(sandbox)) {
|
|
1091
|
-
const failure = probeSandboxCommand(sandbox);
|
|
1092
|
-
if (failure) {
|
|
1093
|
-
throw new FatalSandboxError(
|
|
1094
|
-
`Sandbox command '${sandbox}'${sandboxSource} is installed but cannot run: ${failure}`
|
|
1095
|
-
);
|
|
1096
|
-
}
|
|
1097
|
-
return sandbox;
|
|
1098
|
-
}
|
|
1099
|
-
throw new FatalSandboxError(
|
|
1100
|
-
`Missing sandbox command '${sandbox}'${sandboxSource}`
|
|
1101
|
-
);
|
|
1102
|
-
}
|
|
1103
|
-
const candidates = [];
|
|
1104
|
-
if (os.platform() === "darwin" && import_command_exists.default.sync("sandbox-exec")) {
|
|
1105
|
-
candidates.push("sandbox-exec");
|
|
1106
|
-
}
|
|
1107
|
-
if (sandbox === true) {
|
|
1108
|
-
candidates.push("docker", "podman");
|
|
1109
|
-
}
|
|
1110
|
-
let firstFailure;
|
|
1111
|
-
for (const candidate of candidates) {
|
|
1112
|
-
if (!import_command_exists.default.sync(candidate)) {
|
|
1113
|
-
continue;
|
|
1114
|
-
}
|
|
1115
|
-
const failure = probeSandboxCommand(candidate);
|
|
1116
|
-
if (!failure) {
|
|
1117
|
-
return candidate;
|
|
1118
|
-
}
|
|
1119
|
-
firstFailure ??= { command: candidate, detail: failure };
|
|
1120
|
-
}
|
|
1121
|
-
if (sandbox === true) {
|
|
1122
|
-
const enabledLabel = sandboxSource ? "QWEN_SANDBOX is true" : "Sandbox is enabled";
|
|
1123
|
-
const specifyHint = sandboxSource ? "specify command in QWEN_SANDBOX" : "specify command via --sandbox or QWEN_SANDBOX";
|
|
1124
|
-
if (firstFailure) {
|
|
1125
|
-
throw new FatalSandboxError(
|
|
1126
|
-
`${enabledLabel} and '${firstFailure.command}' is installed but cannot run: ${firstFailure.detail}; start it, try another installed runtime, or ${specifyHint}`
|
|
1127
|
-
);
|
|
1128
|
-
}
|
|
1129
|
-
throw new FatalSandboxError(
|
|
1130
|
-
`${enabledLabel} but failed to determine command for sandbox; install docker or podman or ${specifyHint}`
|
|
1131
|
-
);
|
|
1132
|
-
}
|
|
1133
|
-
return "";
|
|
1134
|
-
}
|
|
1135
|
-
__name(getSandboxCommand, "getSandboxCommand");
|
|
1136
|
-
async function loadSandboxConfig(settings, argv) {
|
|
1137
|
-
const sandboxOption = argv.sandbox ?? settings.tools?.sandbox;
|
|
1138
|
-
const command = getSandboxCommand(sandboxOption);
|
|
1139
|
-
const packageJson = await getPackageJson();
|
|
1140
|
-
const image2 = argv.sandboxImage ?? process.env["QWEN_SANDBOX_IMAGE"] ?? settings.tools?.sandboxImage ?? packageJson?.config?.sandboxImageUri;
|
|
1141
|
-
return command && image2 ? { command, image: image2 } : void 0;
|
|
1142
|
-
}
|
|
1143
|
-
__name(loadSandboxConfig, "loadSandboxConfig");
|
|
1144
|
-
|
|
1145
864
|
// packages/cli/src/utils/events.ts
|
|
1146
865
|
init_esbuild_shims();
|
|
1147
866
|
import { EventEmitter } from "node:events";
|
|
@@ -2821,12 +2540,26 @@ var hooksCommand = {
|
|
|
2821
2540
|
}, "handler")
|
|
2822
2541
|
};
|
|
2823
2542
|
|
|
2543
|
+
// packages/cli/src/config/hook-settings.ts
|
|
2544
|
+
init_esbuild_shims();
|
|
2545
|
+
function resolveHookSettingsForConfig(mergedHooks, separated, hooksDisabled) {
|
|
2546
|
+
if (hooksDisabled) {
|
|
2547
|
+
return { userHooks: void 0, projectHooks: void 0, hooks: void 0 };
|
|
2548
|
+
}
|
|
2549
|
+
return {
|
|
2550
|
+
userHooks: separated?.userHooks ?? mergedHooks,
|
|
2551
|
+
projectHooks: separated?.projectHooks,
|
|
2552
|
+
hooks: mergedHooks
|
|
2553
|
+
};
|
|
2554
|
+
}
|
|
2555
|
+
__name(resolveHookSettingsForConfig, "resolveHookSettingsForConfig");
|
|
2556
|
+
|
|
2824
2557
|
// node_modules/yargs/helpers/helpers.mjs
|
|
2825
2558
|
init_esbuild_shims();
|
|
2826
2559
|
|
|
2827
2560
|
// packages/cli/src/config/config.ts
|
|
2828
2561
|
var import_strip_json_comments = __toESM(require_strip_json_comments(), 1);
|
|
2829
|
-
import * as
|
|
2562
|
+
import * as fs4 from "node:fs";
|
|
2830
2563
|
import * as path5 from "node:path";
|
|
2831
2564
|
import { homedir as homedir2 } from "node:os";
|
|
2832
2565
|
import { randomUUID as randomUUID4 } from "node:crypto";
|
|
@@ -3722,7 +3455,7 @@ var stopCommand = {
|
|
|
3722
3455
|
if (argv["daemon-url"]) {
|
|
3723
3456
|
const token = argv.token ?? process.env[QWEN_SERVER_TOKEN_ENV] ?? process.env[QWEN_DAEMON_TOKEN_ENV];
|
|
3724
3457
|
try {
|
|
3725
|
-
const sdk = await import("./daemon-
|
|
3458
|
+
const sdk = await import("./daemon-INCM4VBX.js");
|
|
3726
3459
|
const client = new sdk.DaemonClient({
|
|
3727
3460
|
baseUrl: argv["daemon-url"],
|
|
3728
3461
|
...token ? { token } : {}
|
|
@@ -3917,7 +3650,7 @@ var statusCommand = {
|
|
|
3917
3650
|
if (argv["daemon-url"]) {
|
|
3918
3651
|
const token = argv.token ?? process.env[QWEN_SERVER_TOKEN_ENV] ?? process.env[QWEN_DAEMON_TOKEN_ENV];
|
|
3919
3652
|
try {
|
|
3920
|
-
const sdk = await import("./daemon-
|
|
3653
|
+
const sdk = await import("./daemon-INCM4VBX.js");
|
|
3921
3654
|
const client = new sdk.DaemonClient({
|
|
3922
3655
|
baseUrl: argv["daemon-url"],
|
|
3923
3656
|
...token ? { token } : {}
|
|
@@ -4028,7 +3761,7 @@ var reloadCommand = {
|
|
|
4028
3761
|
const token = resolveToken(argv.token);
|
|
4029
3762
|
let sdk;
|
|
4030
3763
|
try {
|
|
4031
|
-
sdk = await import("./daemon-
|
|
3764
|
+
sdk = await import("./daemon-INCM4VBX.js");
|
|
4032
3765
|
} catch (err) {
|
|
4033
3766
|
writeStderrLine(
|
|
4034
3767
|
`[Channel] Failed to load daemon SDK: ${safeChannelCommandErrorMessage(err)}`
|
|
@@ -4108,7 +3841,7 @@ var setCommand2 = {
|
|
|
4108
3841
|
const selection = names[0] === "all" ? { mode: "all" } : { mode: "names", names };
|
|
4109
3842
|
let sdk;
|
|
4110
3843
|
try {
|
|
4111
|
-
sdk = await import("./daemon-
|
|
3844
|
+
sdk = await import("./daemon-INCM4VBX.js");
|
|
4112
3845
|
} catch (error) {
|
|
4113
3846
|
writeStderrLine(
|
|
4114
3847
|
`[Channel] Failed to load daemon SDK: ${safeChannelCommandErrorMessage(error)}`
|
|
@@ -4266,7 +3999,7 @@ function createDaemonChannelBridgeFacade(bridge, opts) {
|
|
|
4266
3999
|
}
|
|
4267
4000
|
__name(createDaemonChannelBridgeFacade, "createDaemonChannelBridgeFacade");
|
|
4268
4001
|
async function loadDaemonSdk() {
|
|
4269
|
-
return await import("./daemon-
|
|
4002
|
+
return await import("./daemon-INCM4VBX.js");
|
|
4270
4003
|
}
|
|
4271
4004
|
__name(loadDaemonSdk, "loadDaemonSdk");
|
|
4272
4005
|
function selectedChannelNames(channelsConfig, selection) {
|
|
@@ -6670,11 +6403,11 @@ __name(ensureAuthenticated, "ensureAuthenticated");
|
|
|
6670
6403
|
|
|
6671
6404
|
// packages/cli/src/commands/review/lib/git.ts
|
|
6672
6405
|
init_esbuild_shims();
|
|
6673
|
-
import { execFileSync as execFileSync3, spawnSync as
|
|
6406
|
+
import { execFileSync as execFileSync3, spawnSync as spawnSync2 } from "node:child_process";
|
|
6674
6407
|
|
|
6675
6408
|
// packages/cli/src/commands/review/lib/worktree.ts
|
|
6676
6409
|
init_esbuild_shims();
|
|
6677
|
-
import { spawnSync
|
|
6410
|
+
import { spawnSync } from "node:child_process";
|
|
6678
6411
|
import {
|
|
6679
6412
|
accessSync,
|
|
6680
6413
|
constants,
|
|
@@ -7003,7 +6736,7 @@ function resolvedCommonDir(cwd) {
|
|
|
7003
6736
|
}
|
|
7004
6737
|
__name(resolvedCommonDir, "resolvedCommonDir");
|
|
7005
6738
|
function revParse(cwd, ...flags) {
|
|
7006
|
-
const resolved =
|
|
6739
|
+
const resolved = spawnSync(
|
|
7007
6740
|
"git",
|
|
7008
6741
|
[
|
|
7009
6742
|
"-c",
|
|
@@ -7225,7 +6958,7 @@ function filterCommandsIn(commonDir, gitDir) {
|
|
|
7225
6958
|
const dangling = /* @__PURE__ */ new Set();
|
|
7226
6959
|
const visited = /* @__PURE__ */ new Set();
|
|
7227
6960
|
const read = /* @__PURE__ */ __name((file) => {
|
|
7228
|
-
const r =
|
|
6961
|
+
const r = spawnSync(
|
|
7229
6962
|
"git",
|
|
7230
6963
|
["config", "--file", file, "-z", "--get-regexp", SCREEN_KEYS],
|
|
7231
6964
|
{
|
|
@@ -7361,7 +7094,7 @@ __name(filterBlankEnv, "filterBlankEnv");
|
|
|
7361
7094
|
var UNRESOLVED_REPO = "the repository's git directories could not be resolved (git rev-parse failed) \u2014 not screened";
|
|
7362
7095
|
function screenForTree(worktree) {
|
|
7363
7096
|
const discover = /* @__PURE__ */ __name((flag) => {
|
|
7364
|
-
const r =
|
|
7097
|
+
const r = spawnSync("git", ["rev-parse", "--path-format=absolute", flag], {
|
|
7365
7098
|
cwd: worktree,
|
|
7366
7099
|
encoding: "utf8",
|
|
7367
7100
|
env: sanitizedGitEnv()
|
|
@@ -7398,18 +7131,18 @@ function discardWorktree(cwd, tree) {
|
|
|
7398
7131
|
const ownAdminDir = adminDirOf(tree);
|
|
7399
7132
|
let sweep;
|
|
7400
7133
|
if (!symlink) {
|
|
7401
|
-
sweep =
|
|
7134
|
+
sweep = spawnSync("git", ["worktree", "remove", "--force", tree], {
|
|
7402
7135
|
cwd,
|
|
7403
7136
|
encoding: "utf8",
|
|
7404
7137
|
env: sanitizedGitEnv()
|
|
7405
7138
|
});
|
|
7406
7139
|
if (sweep.status !== 0) {
|
|
7407
|
-
|
|
7140
|
+
spawnSync("git", ["worktree", "unlock", tree], {
|
|
7408
7141
|
cwd,
|
|
7409
7142
|
encoding: "utf8",
|
|
7410
7143
|
env: sanitizedGitEnv()
|
|
7411
7144
|
});
|
|
7412
|
-
sweep =
|
|
7145
|
+
sweep = spawnSync(
|
|
7413
7146
|
"git",
|
|
7414
7147
|
["worktree", "remove", "--force", "--force", tree],
|
|
7415
7148
|
{ cwd, encoding: "utf8", env: sanitizedGitEnv() }
|
|
@@ -7432,7 +7165,7 @@ function dropWorktreeRegistration(cwd, tree, adminDir) {
|
|
|
7432
7165
|
}
|
|
7433
7166
|
return;
|
|
7434
7167
|
}
|
|
7435
|
-
const common =
|
|
7168
|
+
const common = spawnSync(
|
|
7436
7169
|
"git",
|
|
7437
7170
|
["rev-parse", "--path-format=absolute", "--git-common-dir"],
|
|
7438
7171
|
{ cwd, encoding: "utf8", env: sanitizedGitEnv() }
|
|
@@ -7516,7 +7249,7 @@ function inPipelineFootprint(rec) {
|
|
|
7516
7249
|
}
|
|
7517
7250
|
__name(inPipelineFootprint, "inPipelineFootprint");
|
|
7518
7251
|
function ignoreSourcesOf(cwd, paths, anchor = []) {
|
|
7519
|
-
const r =
|
|
7252
|
+
const r = spawnSync(
|
|
7520
7253
|
"git",
|
|
7521
7254
|
[
|
|
7522
7255
|
...anchor,
|
|
@@ -7557,7 +7290,7 @@ function trackedIgnoreSources(cwd, sources, anchor = []) {
|
|
|
7557
7290
|
(s) => s.length > 0 && !isAbsolute3(s) && !s.split("/").some((p) => p === "..")
|
|
7558
7291
|
);
|
|
7559
7292
|
if (inside.length === 0) return /* @__PURE__ */ new Set();
|
|
7560
|
-
const r =
|
|
7293
|
+
const r = spawnSync("git", [...anchor, "ls-files", "-z", "--", ...inside], {
|
|
7561
7294
|
cwd,
|
|
7562
7295
|
encoding: "utf8",
|
|
7563
7296
|
maxBuffer: 64 * 1024 * 1024,
|
|
@@ -7607,7 +7340,7 @@ function worktreeResidue(cwd, cap = RESIDUE_PATH_CAP, expectedHeadSha) {
|
|
|
7607
7340
|
}
|
|
7608
7341
|
}
|
|
7609
7342
|
const discover = /* @__PURE__ */ __name((flag) => {
|
|
7610
|
-
const r2 =
|
|
7343
|
+
const r2 = spawnSync("git", ["rev-parse", "--path-format=absolute", flag], {
|
|
7611
7344
|
cwd,
|
|
7612
7345
|
encoding: "utf8",
|
|
7613
7346
|
env: sanitizedGitEnv()
|
|
@@ -7672,7 +7405,7 @@ function worktreeResidue(cwd, cap = RESIDUE_PATH_CAP, expectedHeadSha) {
|
|
|
7672
7405
|
`--work-tree=${realpathSync3(toplevel)}`
|
|
7673
7406
|
];
|
|
7674
7407
|
if (expectedHeadSha !== void 0) {
|
|
7675
|
-
const head =
|
|
7408
|
+
const head = spawnSync("git", [...anchor, "rev-parse", "HEAD"], {
|
|
7676
7409
|
cwd,
|
|
7677
7410
|
encoding: "utf8",
|
|
7678
7411
|
env: sanitizedGitEnv()
|
|
@@ -7707,7 +7440,7 @@ function worktreeResidue(cwd, cap = RESIDUE_PATH_CAP, expectedHeadSha) {
|
|
|
7707
7440
|
unmeasured: "the path is not a git worktree (repository discovery walks up into the enclosing checkout)"
|
|
7708
7441
|
};
|
|
7709
7442
|
}
|
|
7710
|
-
const r =
|
|
7443
|
+
const r = spawnSync(
|
|
7711
7444
|
"git",
|
|
7712
7445
|
[
|
|
7713
7446
|
...anchor,
|
|
@@ -7756,7 +7489,7 @@ function worktreeResidue(cwd, cap = RESIDUE_PATH_CAP, expectedHeadSha) {
|
|
|
7756
7489
|
paths.push(records[++i]);
|
|
7757
7490
|
}
|
|
7758
7491
|
}
|
|
7759
|
-
const others =
|
|
7492
|
+
const others = spawnSync(
|
|
7760
7493
|
"git",
|
|
7761
7494
|
[...anchor, "-c", "core.fsmonitor=", "ls-files", "--others", "-z"],
|
|
7762
7495
|
{
|
|
@@ -7805,7 +7538,7 @@ function worktreeResidue(cwd, cap = RESIDUE_PATH_CAP, expectedHeadSha) {
|
|
|
7805
7538
|
paths.push(rec);
|
|
7806
7539
|
}
|
|
7807
7540
|
}
|
|
7808
|
-
const stage =
|
|
7541
|
+
const stage = spawnSync(
|
|
7809
7542
|
"git",
|
|
7810
7543
|
[...anchor, "-c", "core.fsmonitor=", "ls-files", "-s", "-z"],
|
|
7811
7544
|
{
|
|
@@ -7834,7 +7567,7 @@ function worktreeResidue(cwd, cap = RESIDUE_PATH_CAP, expectedHeadSha) {
|
|
|
7834
7567
|
unmeasured: "git status cannot see inside the committed submodule path(s) " + blind.join(", ")
|
|
7835
7568
|
};
|
|
7836
7569
|
}
|
|
7837
|
-
const bits =
|
|
7570
|
+
const bits = spawnSync(
|
|
7838
7571
|
"git",
|
|
7839
7572
|
[...anchor, "-c", "core.fsmonitor=", "ls-files", "-v", "-z"],
|
|
7840
7573
|
{
|
|
@@ -8227,7 +7960,7 @@ __name(gitOpts, "gitOpts");
|
|
|
8227
7960
|
var trustedLaunchDir = null;
|
|
8228
7961
|
function kernelCwd() {
|
|
8229
7962
|
try {
|
|
8230
|
-
const r =
|
|
7963
|
+
const r = spawnSync2("/bin/pwd", ["-P"], {
|
|
8231
7964
|
encoding: "utf8",
|
|
8232
7965
|
timeout: 5e3,
|
|
8233
7966
|
env: sanitizedGitEnv()
|
|
@@ -16024,7 +15757,7 @@ __name(repositoryContextOf, "repositoryContextOf");
|
|
|
16024
15757
|
|
|
16025
15758
|
// packages/cli/src/commands/review/script-lint.ts
|
|
16026
15759
|
init_esbuild_shims();
|
|
16027
|
-
import { spawnSync as
|
|
15760
|
+
import { spawnSync as spawnSync3 } from "node:child_process";
|
|
16028
15761
|
import { createHash as createHash4 } from "node:crypto";
|
|
16029
15762
|
import {
|
|
16030
15763
|
readFileSync as readFileSync10,
|
|
@@ -16168,7 +15901,7 @@ function runTool(tool, absPath) {
|
|
|
16168
15901
|
};
|
|
16169
15902
|
}
|
|
16170
15903
|
const { argv, env, timeoutMs } = buildToolInvocation(tool, absPath);
|
|
16171
|
-
const r =
|
|
15904
|
+
const r = spawnSync3(tool, argv, {
|
|
16172
15905
|
encoding: "utf8",
|
|
16173
15906
|
maxBuffer: 32 * 1024 * 1024,
|
|
16174
15907
|
timeout: timeoutMs,
|
|
@@ -26736,13 +26469,13 @@ import { writeFileSync as writeFileSync11 } from "node:fs";
|
|
|
26736
26469
|
|
|
26737
26470
|
// packages/cli/src/commands/review/build-test.ts
|
|
26738
26471
|
init_esbuild_shims();
|
|
26739
|
-
import { spawnSync as
|
|
26472
|
+
import { spawnSync as spawnSync5 } from "node:child_process";
|
|
26740
26473
|
import { existsSync as existsSync12, readFileSync as readFileSync22, statSync as statSync14, writeFileSync as writeFileSync10 } from "node:fs";
|
|
26741
26474
|
import { join as join21, resolve as resolve14 } from "node:path";
|
|
26742
26475
|
|
|
26743
26476
|
// packages/cli/src/commands/review/lib/sandboxed-exec.ts
|
|
26744
26477
|
init_esbuild_shims();
|
|
26745
|
-
import { spawnSync as
|
|
26478
|
+
import { spawnSync as spawnSync4 } from "node:child_process";
|
|
26746
26479
|
import { realpathSync as realpathSync9 } from "node:fs";
|
|
26747
26480
|
import { basename as basename8, dirname as dirname13, join as join19, resolve as resolve13 } from "node:path";
|
|
26748
26481
|
import { fileURLToPath } from "node:url";
|
|
@@ -26774,7 +26507,7 @@ function firstAnsweringRuntime(answers) {
|
|
|
26774
26507
|
}
|
|
26775
26508
|
__name(firstAnsweringRuntime, "firstAnsweringRuntime");
|
|
26776
26509
|
function daemonAnswers(runtime) {
|
|
26777
|
-
const r =
|
|
26510
|
+
const r = spawnSync4(runtime, ["info"], {
|
|
26778
26511
|
stdio: "ignore",
|
|
26779
26512
|
timeout: 3e4,
|
|
26780
26513
|
env: runtimeClientEnv()
|
|
@@ -26788,7 +26521,7 @@ function runtimeIsRootless(runtime, read = cachedInfoDocument) {
|
|
|
26788
26521
|
__name(runtimeIsRootless, "runtimeIsRootless");
|
|
26789
26522
|
function readInfoDocument(runtime) {
|
|
26790
26523
|
try {
|
|
26791
|
-
const r =
|
|
26524
|
+
const r = spawnSync4(runtime, ["info", "--format", "{{json .}}"], {
|
|
26792
26525
|
encoding: "utf8",
|
|
26793
26526
|
timeout: 3e4,
|
|
26794
26527
|
maxBuffer: 8 * 1024 * 1024,
|
|
@@ -26902,7 +26635,7 @@ function boxedRunLeftContainer(status) {
|
|
|
26902
26635
|
return status === null;
|
|
26903
26636
|
}
|
|
26904
26637
|
__name(boxedRunLeftContainer, "boxedRunLeftContainer");
|
|
26905
|
-
function killContainer(runtime, name, spawn2 =
|
|
26638
|
+
function killContainer(runtime, name, spawn2 = spawnSync4) {
|
|
26906
26639
|
try {
|
|
26907
26640
|
spawn2(runtime, ["rm", "-f", name], {
|
|
26908
26641
|
stdio: "ignore",
|
|
@@ -27726,7 +27459,7 @@ function run(command, cwd, timeoutMs, kind = "test") {
|
|
|
27726
27459
|
const started = Date.now();
|
|
27727
27460
|
const deadlineMs = Math.max(1, Math.round(timeoutMs));
|
|
27728
27461
|
const boxed = containerised(command, cwd, kind);
|
|
27729
|
-
const r = boxed ?
|
|
27462
|
+
const r = boxed ? spawnSync5(boxed.file, boxed.args, {
|
|
27730
27463
|
cwd,
|
|
27731
27464
|
encoding: "utf8",
|
|
27732
27465
|
timeout: deadlineMs,
|
|
@@ -27747,7 +27480,7 @@ function run(command, cwd, timeoutMs, kind = "test") {
|
|
|
27747
27480
|
// PATH and nothing from the review, minus the daemon-selecting
|
|
27748
27481
|
// variables a repository could have shipped in its own `.env`.
|
|
27749
27482
|
env: runtimeClientEnv()
|
|
27750
|
-
}) :
|
|
27483
|
+
}) : spawnSync5(command, {
|
|
27751
27484
|
cwd,
|
|
27752
27485
|
shell: true,
|
|
27753
27486
|
encoding: "utf8",
|
|
@@ -28260,7 +27993,7 @@ function sha256OfFile(path6) {
|
|
|
28260
27993
|
}
|
|
28261
27994
|
}
|
|
28262
27995
|
__name(sha256OfFile, "sha256OfFile");
|
|
28263
|
-
function tryResume(args, wt,
|
|
27996
|
+
function tryResume(args, wt, platform) {
|
|
28264
27997
|
const { pr_number: prNumber, owner_repo: ownerRepo, out } = args;
|
|
28265
27998
|
let prev = null;
|
|
28266
27999
|
try {
|
|
@@ -28270,7 +28003,7 @@ function tryResume(args, wt, platform2) {
|
|
|
28270
28003
|
}
|
|
28271
28004
|
let liveHeadSha = null;
|
|
28272
28005
|
try {
|
|
28273
|
-
const oid =
|
|
28006
|
+
const oid = platform.getFetchMeta(Number(prNumber), ownerRepo).headRefOid;
|
|
28274
28007
|
liveHeadSha = typeof oid === "string" && oid !== "" ? oid : null;
|
|
28275
28008
|
} catch {
|
|
28276
28009
|
liveHeadSha = null;
|
|
@@ -28414,12 +28147,12 @@ async function runFetchPr(args) {
|
|
|
28414
28147
|
} catch {
|
|
28415
28148
|
remoteUrl = void 0;
|
|
28416
28149
|
}
|
|
28417
|
-
const
|
|
28418
|
-
|
|
28150
|
+
const platform = getPlatformReader({ remoteUrl, host: args.host?.trim() });
|
|
28151
|
+
platform.ensureAuthenticated();
|
|
28419
28152
|
let resumeRefusal = null;
|
|
28420
28153
|
let priorFetchedSha = null;
|
|
28421
28154
|
if (args.resume) {
|
|
28422
|
-
const outcome = tryResume(args, wt,
|
|
28155
|
+
const outcome = tryResume(args, wt, platform);
|
|
28423
28156
|
if (outcome.resumed) return;
|
|
28424
28157
|
try {
|
|
28425
28158
|
validateDeadlineFlag(process.env, args.deadline);
|
|
@@ -28442,7 +28175,7 @@ async function runFetchPr(args) {
|
|
|
28442
28175
|
git(
|
|
28443
28176
|
"fetch",
|
|
28444
28177
|
remote,
|
|
28445
|
-
`${
|
|
28178
|
+
`${platform.fetchHeadRefSpec(Number(prNumber))}:${ref}`
|
|
28446
28179
|
);
|
|
28447
28180
|
} catch (err) {
|
|
28448
28181
|
throw new Error(
|
|
@@ -28452,7 +28185,7 @@ async function runFetchPr(args) {
|
|
|
28452
28185
|
const fetchedSha = git("rev-parse", `refs/heads/${ref}`);
|
|
28453
28186
|
let meta;
|
|
28454
28187
|
try {
|
|
28455
|
-
const fetchMeta =
|
|
28188
|
+
const fetchMeta = platform.getFetchMeta(Number(prNumber), ownerRepo);
|
|
28456
28189
|
meta = {
|
|
28457
28190
|
headRefName: fetchMeta.headRefName ?? prNumber,
|
|
28458
28191
|
headRefOid: fetchMeta.headRefOid,
|
|
@@ -28476,7 +28209,7 @@ async function runFetchPr(args) {
|
|
|
28476
28209
|
`Failed to fetch PR #${prNumber} metadata: ${err.message}`
|
|
28477
28210
|
);
|
|
28478
28211
|
}
|
|
28479
|
-
const needsLocalStats =
|
|
28212
|
+
const needsLocalStats = platform.kind !== "github";
|
|
28480
28213
|
const freshUntrusted = untrustedRepositoryFrom(process.cwd());
|
|
28481
28214
|
if (freshUntrusted !== null) {
|
|
28482
28215
|
throw new Error(
|
|
@@ -28618,7 +28351,7 @@ async function runFetchPr(args) {
|
|
|
28618
28351
|
// update also rebased) — rule it without ancestry; the two heads'
|
|
28619
28352
|
// diff is the update's delta. A force-pushed GitHub history keeps
|
|
28620
28353
|
// the tests: there they are the detection.
|
|
28621
|
-
{ noAncestry:
|
|
28354
|
+
{ noAncestry: platform.kind === "aone" }
|
|
28622
28355
|
);
|
|
28623
28356
|
} catch (err) {
|
|
28624
28357
|
if (!(err instanceof GitUnavailable)) throw err;
|
|
@@ -31949,7 +31682,7 @@ function renderLedgerSection(ledger, running, author = null, merged = false, per
|
|
|
31949
31682
|
].join("\n");
|
|
31950
31683
|
}
|
|
31951
31684
|
__name(renderLedgerSection, "renderLedgerSection");
|
|
31952
|
-
function buildMarkdown(prNumber, ownerRepo, meta, inline2, issue, reviews, prevLedger = null, me = "", prevLedgerAuthor = null, prevLedgerMerged = false, host, persistedSha = null,
|
|
31685
|
+
function buildMarkdown(prNumber, ownerRepo, meta, inline2, issue, reviews, prevLedger = null, me = "", prevLedgerAuthor = null, prevLedgerMerged = false, host, persistedSha = null, platform = "github", prevLedgerAnchorFromRound) {
|
|
31953
31686
|
const {
|
|
31954
31687
|
openRoots,
|
|
31955
31688
|
openBlockerRoots,
|
|
@@ -31959,7 +31692,7 @@ function buildMarkdown(prNumber, ownerRepo, meta, inline2, issue, reviews, prevL
|
|
|
31959
31692
|
blockerLeads
|
|
31960
31693
|
} = classifyInlineThreads(inline2, me);
|
|
31961
31694
|
const allBlockerRoots = [...repliedBlockerRoots, ...openBlockerRoots];
|
|
31962
|
-
const ctx = { ownerRepo, prNumber, host, platform
|
|
31695
|
+
const ctx = { ownerRepo, prNumber, host, platform };
|
|
31963
31696
|
const blockerIssue = issue.filter((c) => isIssueBlocker(c.body));
|
|
31964
31697
|
const settledIssue = issue.filter((c) => !isIssueBlocker(c.body));
|
|
31965
31698
|
const parts = [];
|
|
@@ -32110,9 +31843,9 @@ async function runPrContext(args) {
|
|
|
32110
31843
|
);
|
|
32111
31844
|
}
|
|
32112
31845
|
rmSync10(out, { force: true });
|
|
32113
|
-
const
|
|
32114
|
-
|
|
32115
|
-
const ctx =
|
|
31846
|
+
const platform = getPlatformReader({ host: args.host });
|
|
31847
|
+
platform.ensureAuthenticated();
|
|
31848
|
+
const ctx = platform.getReviewContext(prNum, ownerRepo);
|
|
32116
31849
|
const meta = {
|
|
32117
31850
|
title: ctx.title,
|
|
32118
31851
|
body: ctx.body,
|
|
@@ -32154,7 +31887,7 @@ async function runPrContext(args) {
|
|
|
32154
31887
|
if (carriers.length || inline2.length) {
|
|
32155
31888
|
let lookupError = null;
|
|
32156
31889
|
try {
|
|
32157
|
-
const login =
|
|
31890
|
+
const login = platform.getCurrentUser();
|
|
32158
31891
|
identityKnown = login !== "";
|
|
32159
31892
|
me = login;
|
|
32160
31893
|
} catch (err) {
|
|
@@ -32208,7 +31941,7 @@ async function runPrContext(args) {
|
|
|
32208
31941
|
);
|
|
32209
31942
|
const resolvedHost = resolveGhHost(args.host);
|
|
32210
31943
|
const flagHost = args.host?.trim();
|
|
32211
|
-
const bakeHost =
|
|
31944
|
+
const bakeHost = platform.kind === "aone" ? flagHost !== void 0 && flagHost !== "" && HOSTNAME_RE.test(flagHost) ? flagHost : void 0 : resolvedHost !== void 0 && HOSTNAME_RE.test(resolvedHost) ? resolvedHost : void 0;
|
|
32212
31945
|
const md = buildMarkdown(
|
|
32213
31946
|
prNumber,
|
|
32214
31947
|
ownerRepo,
|
|
@@ -32222,7 +31955,7 @@ async function runPrContext(args) {
|
|
|
32222
31955
|
prevLedgerMerged,
|
|
32223
31956
|
bakeHost,
|
|
32224
31957
|
persistedSha,
|
|
32225
|
-
|
|
31958
|
+
platform.kind,
|
|
32226
31959
|
prevRecovered?.anchorFromRound
|
|
32227
31960
|
);
|
|
32228
31961
|
mkdirSync18(dirname18(out), { recursive: true });
|
|
@@ -36890,7 +36623,7 @@ var emitWorkflowCommand = {
|
|
|
36890
36623
|
|
|
36891
36624
|
// packages/cli/src/commands/review/base-tree.ts
|
|
36892
36625
|
init_esbuild_shims();
|
|
36893
|
-
import { spawnSync as
|
|
36626
|
+
import { spawnSync as spawnSync6 } from "node:child_process";
|
|
36894
36627
|
import {
|
|
36895
36628
|
existsSync as existsSync15,
|
|
36896
36629
|
mkdirSync as mkdirSync24,
|
|
@@ -36901,7 +36634,7 @@ import {
|
|
|
36901
36634
|
} from "node:fs";
|
|
36902
36635
|
import { dirname as dirname25, join as join27, resolve as resolve25 } from "node:path";
|
|
36903
36636
|
function gitOut(cwd, ...args) {
|
|
36904
|
-
const r =
|
|
36637
|
+
const r = spawnSync6("git", args, {
|
|
36905
36638
|
cwd,
|
|
36906
36639
|
encoding: "utf8",
|
|
36907
36640
|
env: sanitizedGitEnv()
|
|
@@ -36914,7 +36647,7 @@ function gitOut(cwd, ...args) {
|
|
|
36914
36647
|
}
|
|
36915
36648
|
__name(gitOut, "gitOut");
|
|
36916
36649
|
function git2(cwd, ...args) {
|
|
36917
|
-
const r =
|
|
36650
|
+
const r = spawnSync6("git", args, {
|
|
36918
36651
|
cwd,
|
|
36919
36652
|
encoding: "utf8",
|
|
36920
36653
|
env: sanitizedGitEnv()
|
|
@@ -37147,7 +36880,7 @@ var baseTreeCommand = {
|
|
|
37147
36880
|
|
|
37148
36881
|
// packages/cli/src/commands/review/scratch-tree.ts
|
|
37149
36882
|
init_esbuild_shims();
|
|
37150
|
-
import { spawnSync as
|
|
36883
|
+
import { spawnSync as spawnSync7 } from "node:child_process";
|
|
37151
36884
|
import {
|
|
37152
36885
|
existsSync as existsSync16,
|
|
37153
36886
|
lstatSync as lstatSync17,
|
|
@@ -37199,7 +36932,7 @@ function discardStandaloneTree(worktree, tree) {
|
|
|
37199
36932
|
}
|
|
37200
36933
|
__name(discardStandaloneTree, "discardStandaloneTree");
|
|
37201
36934
|
function gitOut2(cwd, ...args) {
|
|
37202
|
-
const r =
|
|
36935
|
+
const r = spawnSync7("git", [...NO_HOOKS, ...args], {
|
|
37203
36936
|
cwd,
|
|
37204
36937
|
encoding: "utf8",
|
|
37205
36938
|
maxBuffer: 64 * 1024 * 1024,
|
|
@@ -37653,7 +37386,7 @@ var testDeltaCommand = {
|
|
|
37653
37386
|
|
|
37654
37387
|
// packages/cli/src/commands/review/drive.ts
|
|
37655
37388
|
init_esbuild_shims();
|
|
37656
|
-
import { spawnSync as
|
|
37389
|
+
import { spawnSync as spawnSync8 } from "node:child_process";
|
|
37657
37390
|
import {
|
|
37658
37391
|
mkdirSync as mkdirSync27,
|
|
37659
37392
|
writeFileSync as writeFileSync26,
|
|
@@ -37790,7 +37523,7 @@ function readCapped(path6, maxBytes) {
|
|
|
37790
37523
|
}
|
|
37791
37524
|
__name(readCapped, "readCapped");
|
|
37792
37525
|
function spawnExec(cmd, args, input, timeoutMs = 3e4, killSignal) {
|
|
37793
|
-
const r =
|
|
37526
|
+
const r = spawnSync8(cmd, args, {
|
|
37794
37527
|
encoding: "utf8",
|
|
37795
37528
|
input,
|
|
37796
37529
|
timeout: timeoutMs,
|
|
@@ -39417,7 +39150,7 @@ var extractStepCommand = {
|
|
|
39417
39150
|
|
|
39418
39151
|
// packages/cli/src/commands/review/revert-hunk.ts
|
|
39419
39152
|
init_esbuild_shims();
|
|
39420
|
-
import { spawnSync as
|
|
39153
|
+
import { spawnSync as spawnSync9 } from "node:child_process";
|
|
39421
39154
|
import {
|
|
39422
39155
|
accessSync as accessSync3,
|
|
39423
39156
|
constants as constants5,
|
|
@@ -39576,7 +39309,7 @@ function parseHunkId(id) {
|
|
|
39576
39309
|
}
|
|
39577
39310
|
__name(parseHunkId, "parseHunkId");
|
|
39578
39311
|
function gitApply(cwd, args) {
|
|
39579
|
-
const r =
|
|
39312
|
+
const r = spawnSync9("git", args, {
|
|
39580
39313
|
cwd,
|
|
39581
39314
|
encoding: "utf8",
|
|
39582
39315
|
env: sanitizedGitEnv(),
|
|
@@ -39591,7 +39324,7 @@ function gitApply(cwd, args) {
|
|
|
39591
39324
|
}
|
|
39592
39325
|
__name(gitApply, "gitApply");
|
|
39593
39326
|
function gitTreeState(tree) {
|
|
39594
|
-
const r =
|
|
39327
|
+
const r = spawnSync9("git", ["rev-parse", "--show-toplevel"], {
|
|
39595
39328
|
cwd: tree,
|
|
39596
39329
|
encoding: "utf8",
|
|
39597
39330
|
env: sanitizedGitEnv(),
|
|
@@ -39661,7 +39394,7 @@ function p1TargetBytes(patch) {
|
|
|
39661
39394
|
}
|
|
39662
39395
|
__name(p1TargetBytes, "p1TargetBytes");
|
|
39663
39396
|
function indexHasPath(tree, path6) {
|
|
39664
|
-
const r =
|
|
39397
|
+
const r = spawnSync9("git", ["ls-files", "-z"], {
|
|
39665
39398
|
cwd: tree,
|
|
39666
39399
|
encoding: "buffer",
|
|
39667
39400
|
env: sanitizedGitEnv(),
|
|
@@ -39859,7 +39592,7 @@ function runRevertHunk(args) {
|
|
|
39859
39592
|
};
|
|
39860
39593
|
}
|
|
39861
39594
|
const targetPath = treePath(tree, targetBytes);
|
|
39862
|
-
const attr =
|
|
39595
|
+
const attr = spawnSync9("git", ["check-attr", "-z", "--stdin", "eol"], {
|
|
39863
39596
|
cwd: tree,
|
|
39864
39597
|
encoding: "buffer",
|
|
39865
39598
|
env: sanitizedGitEnv(),
|
|
@@ -41523,7 +41256,7 @@ var submitCommand = {
|
|
|
41523
41256
|
|
|
41524
41257
|
// packages/cli/src/commands/review/test-efficacy.ts
|
|
41525
41258
|
init_esbuild_shims();
|
|
41526
|
-
import { spawnSync as
|
|
41259
|
+
import { spawnSync as spawnSync10 } from "node:child_process";
|
|
41527
41260
|
import {
|
|
41528
41261
|
mkdirSync as mkdirSync33,
|
|
41529
41262
|
writeFileSync as writeFileSync31,
|
|
@@ -41552,7 +41285,7 @@ function planTestEfficacy(files, workspaceGlobs) {
|
|
|
41552
41285
|
__name(planTestEfficacy, "planTestEfficacy");
|
|
41553
41286
|
function committedSymlinkProbes(tree, probes) {
|
|
41554
41287
|
if (probes.length === 0) return /* @__PURE__ */ new Set();
|
|
41555
|
-
const r =
|
|
41288
|
+
const r = spawnSync10(
|
|
41556
41289
|
"git",
|
|
41557
41290
|
[
|
|
41558
41291
|
"-c",
|
|
@@ -42083,7 +41816,7 @@ function filterScreenRefusal(hits, rewrite) {
|
|
|
42083
41816
|
}
|
|
42084
41817
|
__name(filterScreenRefusal, "filterScreenRefusal");
|
|
42085
41818
|
function git4(cwd, ...args) {
|
|
42086
|
-
const r =
|
|
41819
|
+
const r = spawnSync10("git", args, {
|
|
42087
41820
|
cwd,
|
|
42088
41821
|
encoding: "utf8",
|
|
42089
41822
|
env: sanitizedGitEnv()
|
|
@@ -42095,7 +41828,7 @@ function git4(cwd, ...args) {
|
|
|
42095
41828
|
}
|
|
42096
41829
|
__name(git4, "git");
|
|
42097
41830
|
function gitOut3(cwd, ...args) {
|
|
42098
|
-
const r =
|
|
41831
|
+
const r = spawnSync10("git", args, {
|
|
42099
41832
|
cwd,
|
|
42100
41833
|
encoding: "utf8",
|
|
42101
41834
|
env: sanitizedGitEnv()
|
|
@@ -42128,7 +41861,7 @@ function findVitestBin(worktree, resolveModule = createRequire(
|
|
|
42128
41861
|
}
|
|
42129
41862
|
__name(findVitestBin, "findVitestBin");
|
|
42130
41863
|
function gitCapture(cwd, ...args) {
|
|
42131
|
-
const r =
|
|
41864
|
+
const r = spawnSync10("git", args, {
|
|
42132
41865
|
cwd,
|
|
42133
41866
|
encoding: "utf8",
|
|
42134
41867
|
maxBuffer: 64 * 1024 * 1024,
|
|
@@ -42142,7 +41875,7 @@ function gitCapture(cwd, ...args) {
|
|
|
42142
41875
|
}
|
|
42143
41876
|
__name(gitCapture, "gitCapture");
|
|
42144
41877
|
function existsAtRev(cwd, rev, path6) {
|
|
42145
|
-
const r =
|
|
41878
|
+
const r = spawnSync10("git", ["cat-file", "-e", `${rev}:${path6}`], {
|
|
42146
41879
|
cwd,
|
|
42147
41880
|
env: sanitizedGitEnv()
|
|
42148
41881
|
});
|
|
@@ -42219,7 +41952,7 @@ function restoreProbeTreeTracked(probeTree) {
|
|
|
42219
41952
|
if (!existsSync19(join32(probeTree, ".git"))) {
|
|
42220
41953
|
return `${probeTree} carries no .git, so there is no commit to put it back to`;
|
|
42221
41954
|
}
|
|
42222
|
-
const top =
|
|
41955
|
+
const top = spawnSync10(
|
|
42223
41956
|
"git",
|
|
42224
41957
|
[
|
|
42225
41958
|
"rev-parse",
|
|
@@ -42277,7 +42010,7 @@ function restoreProbeTreeTracked(probeTree) {
|
|
|
42277
42010
|
// planted config — goes.
|
|
42278
42011
|
[...CHECKOUT_INERT, "clean", "-ffdx", "-e", "node_modules"]
|
|
42279
42012
|
]) {
|
|
42280
|
-
const r =
|
|
42013
|
+
const r = spawnSync10("git", args, {
|
|
42281
42014
|
cwd: probeTree,
|
|
42282
42015
|
encoding: "utf8",
|
|
42283
42016
|
env: sanitizedGitEnv()
|
|
@@ -42289,7 +42022,7 @@ function restoreProbeTreeTracked(probeTree) {
|
|
|
42289
42022
|
`git ${args[CHECKOUT_INERT.length]} exited ${r.status}`;
|
|
42290
42023
|
}
|
|
42291
42024
|
}
|
|
42292
|
-
const bits =
|
|
42025
|
+
const bits = spawnSync10(
|
|
42293
42026
|
"git",
|
|
42294
42027
|
["-c", "core.fsmonitor=", "ls-files", "-v", "-z"],
|
|
42295
42028
|
{
|
|
@@ -42325,7 +42058,7 @@ function runProbeSuite(probeTree, probes, deadlineAt, now = Date.now, dependency
|
|
|
42325
42058
|
findVitestBin(dependencyRoot)
|
|
42326
42059
|
)} run --reporter=json ${probes.map(shellQuotePath).join(" ")}`;
|
|
42327
42060
|
const boxed = probeContainer(suite, probeTree);
|
|
42328
|
-
const r = boxed ?
|
|
42061
|
+
const r = boxed ? spawnSync10(boxed.file, boxed.args, {
|
|
42329
42062
|
cwd: probeTree,
|
|
42330
42063
|
encoding: "utf8",
|
|
42331
42064
|
timeout,
|
|
@@ -42344,7 +42077,7 @@ function runProbeSuite(probeTree, probes, deadlineAt, now = Date.now, dependency
|
|
|
42344
42077
|
// variables a repository could have shipped in its own `.env` — the
|
|
42345
42078
|
// container's own environment is the allowlist in `containerEnv`.
|
|
42346
42079
|
env: runtimeClientEnv()
|
|
42347
|
-
}) :
|
|
42080
|
+
}) : spawnSync10(
|
|
42348
42081
|
process.execPath,
|
|
42349
42082
|
[findVitestBin(dependencyRoot), "run", "--reporter=json", ...probes],
|
|
42350
42083
|
{
|
|
@@ -42537,7 +42270,7 @@ function runOneHunkProbe(probeTree, hunk, probes, deadlineAt, now = Date.now, de
|
|
|
42537
42270
|
)
|
|
42538
42271
|
};
|
|
42539
42272
|
}
|
|
42540
|
-
const applied =
|
|
42273
|
+
const applied = spawnSync10("git", ["apply", "--reverse", "-"], {
|
|
42541
42274
|
cwd: probeTree,
|
|
42542
42275
|
input: hunk.patch,
|
|
42543
42276
|
encoding: "utf8",
|
|
@@ -43683,9 +43416,9 @@ function fetchPrBody(ownerRepo, prNumber) {
|
|
|
43683
43416
|
}
|
|
43684
43417
|
__name(fetchPrBody, "fetchPrBody");
|
|
43685
43418
|
function platformBodyFetcher(host) {
|
|
43686
|
-
const
|
|
43687
|
-
if (
|
|
43688
|
-
|
|
43419
|
+
const platform = getPlatformReader({ host });
|
|
43420
|
+
if (platform.kind !== "aone") return fetchPrBody;
|
|
43421
|
+
platform.ensureAuthenticated();
|
|
43689
43422
|
return (ownerRepo, prNumber) => {
|
|
43690
43423
|
const n = Number(prNumber);
|
|
43691
43424
|
if (!/^\d+$/.test(prNumber) || !Number.isSafeInteger(n) || n <= 0) {
|
|
@@ -43693,7 +43426,7 @@ function platformBodyFetcher(host) {
|
|
|
43693
43426
|
`expected a positive MR id, got ${JSON.stringify(prNumber)}`
|
|
43694
43427
|
);
|
|
43695
43428
|
}
|
|
43696
|
-
return
|
|
43429
|
+
return platform.getFetchMeta(n, ownerRepo).body ?? "";
|
|
43697
43430
|
};
|
|
43698
43431
|
}
|
|
43699
43432
|
__name(platformBodyFetcher, "platformBodyFetcher");
|
|
@@ -45631,14 +45364,14 @@ function runMeta(args) {
|
|
|
45631
45364
|
`expected owner/repo, got ${JSON.stringify(args.repo)}`
|
|
45632
45365
|
);
|
|
45633
45366
|
}
|
|
45634
|
-
const
|
|
45367
|
+
const platform = getPlatformReader({ host: args.host });
|
|
45635
45368
|
let host;
|
|
45636
45369
|
let ownerRepo;
|
|
45637
45370
|
if (args.repo !== void 0) {
|
|
45638
45371
|
ownerRepo = args.repo;
|
|
45639
|
-
if ((args.host === void 0 || args.host.trim() === "") &&
|
|
45372
|
+
if ((args.host === void 0 || args.host.trim() === "") && platform.kind !== "github") {
|
|
45640
45373
|
throw new TypeError(
|
|
45641
|
-
`--repo on a ${
|
|
45374
|
+
`--repo on a ${platform.kind} target needs --host \u2014 there is no default host off GitHub`
|
|
45642
45375
|
);
|
|
45643
45376
|
}
|
|
45644
45377
|
host = resolveGhHost(args.host) ?? "github.com";
|
|
@@ -45647,13 +45380,13 @@ function runMeta(args) {
|
|
|
45647
45380
|
`cannot route at the ${args.host !== void 0 ? "--host flag" : "GH_HOST environment"} ${JSON.stringify(host)} \u2014 not a hostname the review subcommands accept`
|
|
45648
45381
|
);
|
|
45649
45382
|
}
|
|
45650
|
-
|
|
45383
|
+
platform.ensureAuthenticated();
|
|
45651
45384
|
} else {
|
|
45652
|
-
|
|
45653
|
-
const id =
|
|
45385
|
+
platform.ensureAuthenticated();
|
|
45386
|
+
const id = platform.resolveRepo();
|
|
45654
45387
|
ownerRepo = `${id.owner}/${id.repo}`;
|
|
45655
45388
|
host = id.host;
|
|
45656
|
-
const routed = (
|
|
45389
|
+
const routed = (platform.kind === "github" ? resolveGhHost(args.host) : (args.host ?? "").trim() || void 0) ?? id.host;
|
|
45657
45390
|
if (!HOSTNAME_RE.test(routed)) {
|
|
45658
45391
|
throw new Error(
|
|
45659
45392
|
`cannot route at the ${args.host !== void 0 ? "--host flag" : "discovered repo-URL host"} ${JSON.stringify(routed)} \u2014 not a hostname the review subcommands accept`
|
|
@@ -45661,9 +45394,9 @@ function runMeta(args) {
|
|
|
45661
45394
|
}
|
|
45662
45395
|
setGhHost(routed);
|
|
45663
45396
|
}
|
|
45664
|
-
const result = { platform:
|
|
45397
|
+
const result = { platform: platform.kind, host, ownerRepo };
|
|
45665
45398
|
if (args.prNumber !== void 0) {
|
|
45666
|
-
const meta =
|
|
45399
|
+
const meta = platform.getPrMeta(args.prNumber, ownerRepo);
|
|
45667
45400
|
result.number = meta.number;
|
|
45668
45401
|
result.headSha = meta.headSha;
|
|
45669
45402
|
result.webUrl = meta.webUrl;
|
|
@@ -45760,11 +45493,11 @@ function runIssueContext(args) {
|
|
|
45760
45493
|
);
|
|
45761
45494
|
}
|
|
45762
45495
|
assertWritableOutPath(args.out);
|
|
45763
|
-
const
|
|
45764
|
-
|
|
45496
|
+
const platform = getPlatformReader({ host: args.host });
|
|
45497
|
+
platform.ensureAuthenticated();
|
|
45765
45498
|
const fetchOne = /* @__PURE__ */ __name((n, ownerRepo) => {
|
|
45766
45499
|
try {
|
|
45767
|
-
return { number: n, ownerRepo, issue:
|
|
45500
|
+
return { number: n, ownerRepo, issue: platform.getIssue(n, ownerRepo) };
|
|
45768
45501
|
} catch (err) {
|
|
45769
45502
|
return { number: n, ownerRepo, error: err.message };
|
|
45770
45503
|
}
|
|
@@ -45772,7 +45505,7 @@ function runIssueContext(args) {
|
|
|
45772
45505
|
let refs;
|
|
45773
45506
|
let discoveryError;
|
|
45774
45507
|
try {
|
|
45775
|
-
refs =
|
|
45508
|
+
refs = platform.getClosingIssues(args.prNumber, args.repo);
|
|
45776
45509
|
} catch (err) {
|
|
45777
45510
|
refs = [];
|
|
45778
45511
|
discoveryError = err.message;
|
|
@@ -45925,9 +45658,9 @@ function runFetchDiff(args) {
|
|
|
45925
45658
|
);
|
|
45926
45659
|
}
|
|
45927
45660
|
assertWritableOutPath(args.out);
|
|
45928
|
-
const
|
|
45929
|
-
|
|
45930
|
-
const diff =
|
|
45661
|
+
const platform = getPlatformReader({ host: args.host });
|
|
45662
|
+
platform.ensureAuthenticated();
|
|
45663
|
+
const diff = platform.fetchDiff(args.prNumber, args.repo).replace(/\n+$/, "");
|
|
45931
45664
|
const diffPath = resolve40(args.out);
|
|
45932
45665
|
mkdirSync38(dirname40(diffPath), { recursive: true });
|
|
45933
45666
|
writeFileSync35(diffPath, diff === "" ? "" : diff + "\n", "latin1");
|
|
@@ -46011,14 +45744,14 @@ function runCommentBody(args) {
|
|
|
46011
45744
|
if (args.out !== void 0) {
|
|
46012
45745
|
assertWritableOutPath(args.out);
|
|
46013
45746
|
}
|
|
46014
|
-
const
|
|
46015
|
-
if (
|
|
45747
|
+
const platform = getPlatformReader({ host: args.host });
|
|
45748
|
+
if (platform.kind === "aone" && args.prNumber === void 0) {
|
|
46016
45749
|
throw new TypeError(
|
|
46017
45750
|
"aone comment bodies are addressed per-MR \u2014 pass `--pr <mr id>`"
|
|
46018
45751
|
);
|
|
46019
45752
|
}
|
|
46020
|
-
|
|
46021
|
-
const body =
|
|
45753
|
+
platform.ensureAuthenticated();
|
|
45754
|
+
const body = platform.getCommentBody(
|
|
46022
45755
|
args.kind,
|
|
46023
45756
|
args.id,
|
|
46024
45757
|
args.repo,
|
|
@@ -46182,7 +45915,7 @@ async function handleAdd(argv) {
|
|
|
46182
45915
|
);
|
|
46183
45916
|
writeStdoutLine(` {"msgV":1,"type":"auth","token":"${token}"}`);
|
|
46184
45917
|
writeStdoutLine(
|
|
46185
|
-
"The target session must have agents.crossSessionMessaging
|
|
45918
|
+
"The target session must not have agents.crossSessionMessaging turned off (it is on by default), and must be restarted after changing that setting."
|
|
46186
45919
|
);
|
|
46187
45920
|
writeStdoutLine(
|
|
46188
45921
|
'Messages it sends are delivered without per-message review, unless agents.crossSessionInbound is "hold" or "refuse".'
|
|
@@ -47399,10 +47132,10 @@ var updateCommand3 = {
|
|
|
47399
47132
|
stdioHelpers,
|
|
47400
47133
|
{ updateEventEmitter }
|
|
47401
47134
|
] = await Promise.all([
|
|
47402
|
-
import("./settings-
|
|
47403
|
-
import("./updateCheck-
|
|
47404
|
-
import("./installationInfo-
|
|
47405
|
-
import("./standalone-update-
|
|
47135
|
+
import("./settings-P4DHIIUP.js"),
|
|
47136
|
+
import("./updateCheck-PKSSORPO.js"),
|
|
47137
|
+
import("./installationInfo-2IJV5QKC.js"),
|
|
47138
|
+
import("./standalone-update-H5OJ7MM7.js"),
|
|
47406
47139
|
import("./stdioHelpers-AY6XCDY2.js"),
|
|
47407
47140
|
import("./updateEventEmitter-5MKC7BLQ.js")
|
|
47408
47141
|
]);
|
|
@@ -47490,6 +47223,292 @@ var updateCommand3 = {
|
|
|
47490
47223
|
}, "handler")
|
|
47491
47224
|
};
|
|
47492
47225
|
|
|
47226
|
+
// packages/cli/src/commands/sandbox.ts
|
|
47227
|
+
init_esbuild_shims();
|
|
47228
|
+
import fs3 from "node:fs";
|
|
47229
|
+
var sandboxCommand = {
|
|
47230
|
+
command: "sandbox [cmd...]",
|
|
47231
|
+
describe: "Inspect the sandbox backend, or run a command inside it",
|
|
47232
|
+
builder: /* @__PURE__ */ __name((yargs) => yargs.parserConfiguration({
|
|
47233
|
+
"populate--": true,
|
|
47234
|
+
"parse-positional-numbers": false
|
|
47235
|
+
}).positional("cmd", {
|
|
47236
|
+
describe: "Command to run inside the sandbox",
|
|
47237
|
+
type: "string",
|
|
47238
|
+
array: true
|
|
47239
|
+
}).option("verify", {
|
|
47240
|
+
type: "boolean",
|
|
47241
|
+
default: false,
|
|
47242
|
+
describe: "Run the confinement behavior battery and report pass/fail"
|
|
47243
|
+
}).option("sandbox", DEFAULT_COMMAND_OPTIONS.sandbox).option("sandbox-image", DEFAULT_COMMAND_OPTIONS["sandbox-image"]).example("$0 sandbox", "Report the resolved backend and writable roots").example("$0 sandbox --verify", "Prove the confinement actually holds").example("$0 sandbox -- sh -c 'ls /'", "Run one command confined").strict(), "builder"),
|
|
47244
|
+
handler: /* @__PURE__ */ __name(async (argv) => {
|
|
47245
|
+
const [
|
|
47246
|
+
{ loadSettings: loadSettings2 },
|
|
47247
|
+
{ loadSandboxConfig: loadSandboxConfig2 },
|
|
47248
|
+
sandboxModule,
|
|
47249
|
+
{ writeStdoutLine: writeStdoutLine2, writeStderrLine: writeStderrLine2 },
|
|
47250
|
+
{ spawnSync: spawnSync11 },
|
|
47251
|
+
{ isBareMode: isBareMode2 },
|
|
47252
|
+
{ isSafeModeEnv: isSafeModeEnv2 }
|
|
47253
|
+
] = await Promise.all([
|
|
47254
|
+
import("./settings-P4DHIIUP.js"),
|
|
47255
|
+
import("./sandboxConfig-CY343YNJ.js"),
|
|
47256
|
+
import("./sandbox-UIXL423Z.js"),
|
|
47257
|
+
import("./stdioHelpers-AY6XCDY2.js"),
|
|
47258
|
+
import("node:child_process"),
|
|
47259
|
+
import("./bareMode-QWKZPLPX.js"),
|
|
47260
|
+
import("./safe-mode-KLGUG54M.js")
|
|
47261
|
+
]);
|
|
47262
|
+
const {
|
|
47263
|
+
buildBwrapArgs,
|
|
47264
|
+
buildBwrapEnv,
|
|
47265
|
+
runBwrap,
|
|
47266
|
+
resolveBwrapWritableRoots,
|
|
47267
|
+
resolveSandboxNetworkMode
|
|
47268
|
+
} = sandboxModule;
|
|
47269
|
+
const args = argv;
|
|
47270
|
+
const requestedCmd = [...args.cmd ?? [], ...args["--"] ?? []];
|
|
47271
|
+
const writeReportLine = requestedCmd.length ? writeStderrLine2 : writeStdoutLine2;
|
|
47272
|
+
const cwd = process.cwd();
|
|
47273
|
+
const bare = isBareMode2(args.bare);
|
|
47274
|
+
const settings = bare ? {} : loadSettings2(cwd, false).merged;
|
|
47275
|
+
const effectiveSettings = bare || (args.safeMode ?? isSafeModeEnv2()) ? {} : settings;
|
|
47276
|
+
if (process.env["SANDBOX"]) {
|
|
47277
|
+
writeReportLine(`Already inside a sandbox: ${process.env["SANDBOX"]}`);
|
|
47278
|
+
const enforcement = process.env["SANDBOX_ENFORCEMENT"];
|
|
47279
|
+
if (enforcement) {
|
|
47280
|
+
writeReportLine(`Enforcement: ${enforcement}`);
|
|
47281
|
+
}
|
|
47282
|
+
writeReportLine(
|
|
47283
|
+
"Run this from outside the sandbox to inspect a backend."
|
|
47284
|
+
);
|
|
47285
|
+
if (args.verify || requestedCmd.length) {
|
|
47286
|
+
writeStderrLine2("No verification or command was run.");
|
|
47287
|
+
process.exitCode = 1;
|
|
47288
|
+
}
|
|
47289
|
+
return;
|
|
47290
|
+
}
|
|
47291
|
+
let sandboxConfig;
|
|
47292
|
+
try {
|
|
47293
|
+
sandboxConfig = await loadSandboxConfig2(settings, args);
|
|
47294
|
+
} catch (error) {
|
|
47295
|
+
writeStderrLine2(
|
|
47296
|
+
`Sandbox unavailable: ${error instanceof Error ? error.message : String(error)}`
|
|
47297
|
+
);
|
|
47298
|
+
process.exitCode = 1;
|
|
47299
|
+
return;
|
|
47300
|
+
}
|
|
47301
|
+
if (!sandboxConfig) {
|
|
47302
|
+
writeReportLine("Backend: none (running unconfined)");
|
|
47303
|
+
writeReportLine(
|
|
47304
|
+
"Enable one with --sandbox, QWEN_SANDBOX=<command>, or tools.sandbox."
|
|
47305
|
+
);
|
|
47306
|
+
if (args.verify || requestedCmd.length) {
|
|
47307
|
+
writeStderrLine2(
|
|
47308
|
+
"No verification or command was run: no sandbox is configured."
|
|
47309
|
+
);
|
|
47310
|
+
process.exitCode = 1;
|
|
47311
|
+
}
|
|
47312
|
+
return;
|
|
47313
|
+
}
|
|
47314
|
+
writeReportLine(`Backend: ${sandboxConfig.command}`);
|
|
47315
|
+
if (sandboxConfig.image) {
|
|
47316
|
+
writeReportLine(`Image: ${sandboxConfig.image}`);
|
|
47317
|
+
}
|
|
47318
|
+
if (sandboxConfig.command !== "bwrap") {
|
|
47319
|
+
writeReportLine(
|
|
47320
|
+
`Inspection of writable roots is implemented for bwrap; '${sandboxConfig.command}' reports its backend only.`
|
|
47321
|
+
);
|
|
47322
|
+
if (args.verify || requestedCmd.length) {
|
|
47323
|
+
writeStderrLine2(
|
|
47324
|
+
`--verify and running a command are only supported for bwrap, not '${sandboxConfig.command}'.`
|
|
47325
|
+
);
|
|
47326
|
+
process.exitCode = 1;
|
|
47327
|
+
}
|
|
47328
|
+
return;
|
|
47329
|
+
}
|
|
47330
|
+
let networkMode;
|
|
47331
|
+
let rootsResult;
|
|
47332
|
+
try {
|
|
47333
|
+
networkMode = resolveSandboxNetworkMode();
|
|
47334
|
+
rootsResult = resolveBwrapWritableRoots(
|
|
47335
|
+
(effectiveSettings.context?.includeDirectories ?? []).map(resolvePath)
|
|
47336
|
+
);
|
|
47337
|
+
} catch (error) {
|
|
47338
|
+
writeStderrLine2(
|
|
47339
|
+
`Sandbox unavailable: ${error instanceof Error ? error.message : String(error)}`
|
|
47340
|
+
);
|
|
47341
|
+
process.exitCode = 1;
|
|
47342
|
+
return;
|
|
47343
|
+
}
|
|
47344
|
+
const { targetDir, roots, readOnlyOverrides } = rootsResult;
|
|
47345
|
+
writeReportLine("Enforcement: full");
|
|
47346
|
+
writeReportLine(
|
|
47347
|
+
"Boundary: filesystem mounts; host Unix sockets remain reachable"
|
|
47348
|
+
);
|
|
47349
|
+
writeReportLine(
|
|
47350
|
+
"Git metadata: granted repository config and hooks remain writable and can affect later unconfined Git commands."
|
|
47351
|
+
);
|
|
47352
|
+
writeReportLine(`Network: ${networkMode}`);
|
|
47353
|
+
if (networkMode === "proxied") {
|
|
47354
|
+
writeReportLine(
|
|
47355
|
+
"Proxy settings are advisory; direct connections remain possible."
|
|
47356
|
+
);
|
|
47357
|
+
}
|
|
47358
|
+
writeReportLine(`Target dir: ${targetDir}`);
|
|
47359
|
+
writeReportLine(
|
|
47360
|
+
"Writable roots (settings-derived; a session started with --include-directories also binds those):"
|
|
47361
|
+
);
|
|
47362
|
+
for (const root of roots) {
|
|
47363
|
+
writeReportLine(` ${root}`);
|
|
47364
|
+
}
|
|
47365
|
+
if (readOnlyOverrides.length > 0) {
|
|
47366
|
+
writeReportLine("Read-only inside a writable root:");
|
|
47367
|
+
for (const override of readOnlyOverrides) {
|
|
47368
|
+
writeReportLine(` ${override}`);
|
|
47369
|
+
}
|
|
47370
|
+
}
|
|
47371
|
+
const runConfined = /* @__PURE__ */ __name((cmdArgv) => {
|
|
47372
|
+
const result = spawnSync11(
|
|
47373
|
+
"bwrap",
|
|
47374
|
+
[
|
|
47375
|
+
"--new-session",
|
|
47376
|
+
...buildBwrapArgs({
|
|
47377
|
+
writableRoots: roots,
|
|
47378
|
+
targetDir,
|
|
47379
|
+
networkMode,
|
|
47380
|
+
cliArgs: cmdArgv,
|
|
47381
|
+
readOnlyOverrides
|
|
47382
|
+
})
|
|
47383
|
+
],
|
|
47384
|
+
// The battery matches on message text rendered by the confined
|
|
47385
|
+
// libc, and glibc localizes strerror() through its own catalogs —
|
|
47386
|
+
// under a non-English LC_ALL/LANG the EROFS message comes back
|
|
47387
|
+
// localized and a holding confinement would report FAIL. The C
|
|
47388
|
+
// locale pins the dialect for every message-based case at once.
|
|
47389
|
+
// Only the probes get this; requested commands keep the user's locale.
|
|
47390
|
+
{
|
|
47391
|
+
encoding: "utf8",
|
|
47392
|
+
env: { ...buildBwrapEnv(networkMode), LC_ALL: "C" }
|
|
47393
|
+
}
|
|
47394
|
+
);
|
|
47395
|
+
const stdout = result.stdout ?? "";
|
|
47396
|
+
return {
|
|
47397
|
+
status: result.status,
|
|
47398
|
+
stdout,
|
|
47399
|
+
output: `${stdout}${result.stderr ?? ""}`
|
|
47400
|
+
};
|
|
47401
|
+
}, "runConfined");
|
|
47402
|
+
if (requestedCmd.length) {
|
|
47403
|
+
try {
|
|
47404
|
+
process.exitCode = await runBwrap({
|
|
47405
|
+
writableRoots: roots,
|
|
47406
|
+
targetDir,
|
|
47407
|
+
networkMode,
|
|
47408
|
+
cliArgs: requestedCmd,
|
|
47409
|
+
readOnlyOverrides
|
|
47410
|
+
});
|
|
47411
|
+
} catch (error) {
|
|
47412
|
+
writeStderrLine2(
|
|
47413
|
+
`Sandbox command failed: ${error instanceof Error ? error.message : String(error)}`
|
|
47414
|
+
);
|
|
47415
|
+
process.exitCode = 1;
|
|
47416
|
+
}
|
|
47417
|
+
return;
|
|
47418
|
+
}
|
|
47419
|
+
if (!args.verify) {
|
|
47420
|
+
return;
|
|
47421
|
+
}
|
|
47422
|
+
let hostPidNamespace;
|
|
47423
|
+
try {
|
|
47424
|
+
hostPidNamespace = fs3.readlinkSync("/proc/self/ns/pid");
|
|
47425
|
+
} catch (error) {
|
|
47426
|
+
writeStderrLine2(
|
|
47427
|
+
`Cannot verify sandbox PID namespace: ${error instanceof Error ? error.message : String(error)}`
|
|
47428
|
+
);
|
|
47429
|
+
process.exitCode = 1;
|
|
47430
|
+
return;
|
|
47431
|
+
}
|
|
47432
|
+
writeStdoutLine2("");
|
|
47433
|
+
const denied = /Read-only file system/;
|
|
47434
|
+
const cases = [
|
|
47435
|
+
{
|
|
47436
|
+
name: "write inside the workspace succeeds",
|
|
47437
|
+
// `mktemp`, not a fixed name: `touch X && rm X` on a workspace that
|
|
47438
|
+
// already contains an `X` succeeds at the touch and then deletes the
|
|
47439
|
+
// user's file. mktemp only ever creates a new one, and still fails
|
|
47440
|
+
// when the directory is not writable, which is what this asserts.
|
|
47441
|
+
argv: [
|
|
47442
|
+
"sh",
|
|
47443
|
+
"-c",
|
|
47444
|
+
'f=$(mktemp ./.qwen-sandbox-probe.XXXXXX) && rm -f "$f"'
|
|
47445
|
+
],
|
|
47446
|
+
expectation: "the workspace must stay writable, or no work is possible",
|
|
47447
|
+
check: /* @__PURE__ */ __name(({ status }) => status === 0, "check")
|
|
47448
|
+
},
|
|
47449
|
+
{
|
|
47450
|
+
name: "write outside the roots is denied",
|
|
47451
|
+
argv: ["sh", "-c", "touch /usr/local/bin/qwen-sandbox-probe 2>&1"],
|
|
47452
|
+
expectation: "a read-only host root is the confinement; without this there is none",
|
|
47453
|
+
check: /* @__PURE__ */ __name(({ output }) => denied.test(output), "check")
|
|
47454
|
+
},
|
|
47455
|
+
{
|
|
47456
|
+
name: "payload shares the host PID namespace",
|
|
47457
|
+
argv: ["readlink", "/proc/self/ns/pid"],
|
|
47458
|
+
expectation: "no PID namespace, so cross-process ownership records stay meaningful",
|
|
47459
|
+
check: /* @__PURE__ */ __name(({ status, stdout }) => status === 0 && stdout.trim() === hostPidNamespace, "check")
|
|
47460
|
+
},
|
|
47461
|
+
{
|
|
47462
|
+
name: networkMode === "closed" ? "network namespace is private in closed mode" : `host network is shared in ${networkMode} mode`,
|
|
47463
|
+
// Reading `/proc/net/dev`, and neither of the two more obvious probes,
|
|
47464
|
+
// both of which were measured to assert nothing here:
|
|
47465
|
+
// - `getent hosts localhost` answers from /etc/hosts without touching
|
|
47466
|
+
// the network stack, so it succeeds even under --unshare-net;
|
|
47467
|
+
// - `/sys/class/net` still lists the host interfaces, because
|
|
47468
|
+
// `--ro-bind / /` carries the host sysfs in and a bind mount does
|
|
47469
|
+
// not re-associate it with the new namespace.
|
|
47470
|
+
// `/proc/net` is a per-process symlink to `self/net`, so it does follow
|
|
47471
|
+
// the caller's network namespace. Needs no iproute2 and no connectivity.
|
|
47472
|
+
argv: ["sh", "-c", "tail -n +3 /proc/net/dev | cut -d: -f1"],
|
|
47473
|
+
expectation: networkMode === "closed" ? "closed mode unshares the network namespace, leaving only loopback" : "open and proxied modes keep the host interfaces visible",
|
|
47474
|
+
check: /* @__PURE__ */ __name(({ status, stdout }) => {
|
|
47475
|
+
if (status !== 0) {
|
|
47476
|
+
return false;
|
|
47477
|
+
}
|
|
47478
|
+
const names = stdout.trim().split(/\s+/).filter(Boolean);
|
|
47479
|
+
if (!names.includes("lo")) {
|
|
47480
|
+
return false;
|
|
47481
|
+
}
|
|
47482
|
+
const nonLoopback = names.filter((name) => name !== "lo");
|
|
47483
|
+
return networkMode === "closed" ? nonLoopback.length === 0 : nonLoopback.length > 0;
|
|
47484
|
+
}, "check")
|
|
47485
|
+
}
|
|
47486
|
+
];
|
|
47487
|
+
let failures = 0;
|
|
47488
|
+
for (const testCase of cases) {
|
|
47489
|
+
const result = runConfined(testCase.argv);
|
|
47490
|
+
if (testCase.check(result)) {
|
|
47491
|
+
writeStdoutLine2(` PASS ${testCase.name}`);
|
|
47492
|
+
} else {
|
|
47493
|
+
failures += 1;
|
|
47494
|
+
writeStdoutLine2(` FAIL ${testCase.name}`);
|
|
47495
|
+
writeStdoutLine2(` expected: ${testCase.expectation}`);
|
|
47496
|
+
const detail = result.output.trim();
|
|
47497
|
+
writeStdoutLine2(
|
|
47498
|
+
` got: exit ${result.status}${detail ? ` \u2014 ${detail}` : ""}`
|
|
47499
|
+
);
|
|
47500
|
+
}
|
|
47501
|
+
}
|
|
47502
|
+
writeStdoutLine2("");
|
|
47503
|
+
writeStdoutLine2(
|
|
47504
|
+
failures === 0 ? `Confinement verified (${cases.length} checks).` : `${failures} of ${cases.length} checks failed.`
|
|
47505
|
+
);
|
|
47506
|
+
if (failures > 0) {
|
|
47507
|
+
process.exitCode = 1;
|
|
47508
|
+
}
|
|
47509
|
+
}, "handler")
|
|
47510
|
+
};
|
|
47511
|
+
|
|
47493
47512
|
// packages/cli/src/config/config.ts
|
|
47494
47513
|
var debugLogger4 = createDebugLogger("CONFIG");
|
|
47495
47514
|
function resolveLocaleForExtensions(settings) {
|
|
@@ -47614,7 +47633,7 @@ function resolveJsonSchemaArg(raw) {
|
|
|
47614
47633
|
payloadSource = "file";
|
|
47615
47634
|
payloadSourcePath = resolvedPath;
|
|
47616
47635
|
try {
|
|
47617
|
-
const stat =
|
|
47636
|
+
const stat = fs4.statSync(resolvedPath);
|
|
47618
47637
|
if (!stat.isFile()) {
|
|
47619
47638
|
throw new FatalConfigError(
|
|
47620
47639
|
`--json-schema "@${resolvedPath}" must be a regular file.`
|
|
@@ -47625,7 +47644,7 @@ function resolveJsonSchemaArg(raw) {
|
|
|
47625
47644
|
`--json-schema file "${resolvedPath}" is ${stat.size} bytes (>${MAX_JSON_SCHEMA_FILE_BYTES}). Refusing to read; this is almost certainly a wrong-path argument. Schemas should be small enough to fit in a few KiB; decompose with \`$ref\` if you need a large family of types.`
|
|
47626
47645
|
);
|
|
47627
47646
|
}
|
|
47628
|
-
payload =
|
|
47647
|
+
payload = fs4.readFileSync(resolvedPath, "utf8");
|
|
47629
47648
|
} catch (err) {
|
|
47630
47649
|
if (err instanceof FatalConfigError) throw err;
|
|
47631
47650
|
throw new FatalConfigError(
|
|
@@ -47841,7 +47860,7 @@ async function parseArguments() {
|
|
|
47841
47860
|
}
|
|
47842
47861
|
return true;
|
|
47843
47862
|
})
|
|
47844
|
-
).command(mcpCommand).command(extensionsCommand).command(authCommand).command(hooksCommand).command(channelCommand).command(boardCommand).command(reviewCommand).command(serveCommand).command(sessionsCommand).command(updateCommand3);
|
|
47863
|
+
).command(mcpCommand).command(extensionsCommand).command(authCommand).command(hooksCommand).command(channelCommand).command(boardCommand).command(reviewCommand).command(serveCommand).command(sessionsCommand).command(updateCommand3).command(sandboxCommand);
|
|
47845
47864
|
for (const [option, message] of Object.entries(
|
|
47846
47865
|
TOP_LEVEL_DEPRECATED_OPTIONS
|
|
47847
47866
|
)) {
|
|
@@ -47850,7 +47869,7 @@ async function parseArguments() {
|
|
|
47850
47869
|
yargsInstance.version(await getCliVersion()).alias("v", "version").help().alias("h", "help").strict().demandCommand(0, 0);
|
|
47851
47870
|
yargsInstance.wrap(yargsInstance.terminalWidth());
|
|
47852
47871
|
const result = await yargsInstance.parse();
|
|
47853
|
-
if (result._.length > 0 && (result._[0] === "mcp" || result._[0] === "extensions" || result._[0] === "auth" || result._[0] === "hooks" || result._[0] === "channel" || result._[0] === "review" || result._[0] === "sessions" || result._[0] === "board" || result._[0] === "update")) {
|
|
47872
|
+
if (result._.length > 0 && (result._[0] === "mcp" || result._[0] === "extensions" || result._[0] === "auth" || result._[0] === "hooks" || result._[0] === "channel" || result._[0] === "review" || result._[0] === "sessions" || result._[0] === "board" || result._[0] === "update" || result._[0] === "sandbox")) {
|
|
47854
47873
|
process.exit(process.exitCode ?? 0);
|
|
47855
47874
|
}
|
|
47856
47875
|
const queryArg = result.query;
|
|
@@ -47879,8 +47898,8 @@ async function parseArguments() {
|
|
|
47879
47898
|
}
|
|
47880
47899
|
__name(parseArguments, "parseArguments");
|
|
47881
47900
|
async function loadHierarchicalMemory(currentWorkingDirectory, includeDirectoriesToReadMemory = [], fileService, extensionContextFilePaths = [], folderTrust, memoryImportFormat = "tree", contextRuleExcludes = [], options = {}) {
|
|
47882
|
-
const realCwd =
|
|
47883
|
-
const realHome =
|
|
47901
|
+
const realCwd = fs4.realpathSync(path5.resolve(currentWorkingDirectory));
|
|
47902
|
+
const realHome = fs4.realpathSync(path5.resolve(homedir2()));
|
|
47884
47903
|
const isHomeDirectory = realCwd === realHome;
|
|
47885
47904
|
const effectiveCwd = isHomeDirectory ? "" : currentWorkingDirectory;
|
|
47886
47905
|
return loadServerHierarchicalMemory(
|
|
@@ -48051,9 +48070,9 @@ function parseMcpConfig(mcpConfigArg) {
|
|
|
48051
48070
|
}
|
|
48052
48071
|
try {
|
|
48053
48072
|
let parsed;
|
|
48054
|
-
if (
|
|
48073
|
+
if (fs4.existsSync(mcpConfigArg)) {
|
|
48055
48074
|
debugLogger4.debug(`Reading MCP config from file: ${mcpConfigArg}`);
|
|
48056
|
-
const content =
|
|
48075
|
+
const content = fs4.readFileSync(mcpConfigArg, "utf-8");
|
|
48057
48076
|
parsed = JSON.parse((0, import_strip_json_comments.default)(content));
|
|
48058
48077
|
} else {
|
|
48059
48078
|
debugLogger4.debug("Parsing MCP config as JSON string");
|
|
@@ -48210,9 +48229,9 @@ async function loadCliConfig(settings, argv, cwd = process.cwd(), overrideExtens
|
|
|
48210
48229
|
);
|
|
48211
48230
|
let outputLanguageFilePath;
|
|
48212
48231
|
if (!bareMode && !safeMode) {
|
|
48213
|
-
if (!provisionalWorkspace &&
|
|
48232
|
+
if (!provisionalWorkspace && fs4.existsSync(projectOutputLanguagePath)) {
|
|
48214
48233
|
outputLanguageFilePath = projectOutputLanguagePath;
|
|
48215
|
-
} else if (
|
|
48234
|
+
} else if (fs4.existsSync(globalOutputLanguagePath)) {
|
|
48216
48235
|
outputLanguageFilePath = globalOutputLanguagePath;
|
|
48217
48236
|
}
|
|
48218
48237
|
}
|
|
@@ -48553,7 +48572,7 @@ async function loadCliConfig(settings, argv, cwd = process.cwd(), overrideExtens
|
|
|
48553
48572
|
enabledSkillNamesProvider: bareMode || safeMode ? void 0 : enabledSkillNamesProvider,
|
|
48554
48573
|
skillSettingsListsProvider: bareMode || safeMode ? void 0 : buildSkillSettingsListsProvider(settings),
|
|
48555
48574
|
terminalImageRenderSupportProvider: interactive ? async () => {
|
|
48556
|
-
const { getTerminalImageRenderSupport } = await import("./terminal-image-renderer-
|
|
48575
|
+
const { getTerminalImageRenderSupport } = await import("./terminal-image-renderer-UDPJPGPQ.js");
|
|
48557
48576
|
return getTerminalImageRenderSupport();
|
|
48558
48577
|
} : void 0,
|
|
48559
48578
|
disabledSkillLevels: bareMode || safeMode || !Array.isArray(settings.skills?.disabledLevels) ? void 0 : settings.skills.disabledLevels.filter(isSkillLevel),
|
|
@@ -48685,6 +48704,7 @@ async function loadCliConfig(settings, argv, cwd = process.cwd(), overrideExtens
|
|
|
48685
48704
|
useRipgrep: settings.tools?.useRipgrep,
|
|
48686
48705
|
useBuiltinRipgrep: settings.tools?.useBuiltinRipgrep,
|
|
48687
48706
|
workflowsEnabled: settings.tools?.workflowsEnabled,
|
|
48707
|
+
workflowSizeGuideline: settings.tools?.workflowSizeGuideline,
|
|
48688
48708
|
modelProposedGoals: normalizeModelProposedGoals(
|
|
48689
48709
|
settings.goals?.modelProposed
|
|
48690
48710
|
),
|
|
@@ -48726,9 +48746,11 @@ async function loadCliConfig(settings, argv, cwd = process.cwd(), overrideExtens
|
|
|
48726
48746
|
settings.modelFallbacks
|
|
48727
48747
|
),
|
|
48728
48748
|
// Use separated hooks if provided, otherwise fall back to merged hooks
|
|
48729
|
-
|
|
48730
|
-
|
|
48731
|
-
|
|
48749
|
+
...resolveHookSettingsForConfig(
|
|
48750
|
+
settings.hooks,
|
|
48751
|
+
hooksConfig,
|
|
48752
|
+
bareMode || safeMode
|
|
48753
|
+
),
|
|
48732
48754
|
disableAllHooks: bareMode || safeMode ? true : settings.disableAllHooks ?? false,
|
|
48733
48755
|
stopHookBlockingCap: bareMode || safeMode ? void 0 : settings.stopHookBlockingCap,
|
|
48734
48756
|
channel: argv.channel,
|
|
@@ -48769,9 +48791,9 @@ async function loadCliConfig(settings, argv, cwd = process.cwd(), overrideExtens
|
|
|
48769
48791
|
};
|
|
48770
48792
|
const config2 = new Config(configParams);
|
|
48771
48793
|
config2.setExternalAgentExecutor({
|
|
48772
|
-
create: /* @__PURE__ */ __name((params) => params.spec.kind === "codex" ? import("./codex-subagent-executor-
|
|
48794
|
+
create: /* @__PURE__ */ __name((params) => params.spec.kind === "codex" ? import("./codex-subagent-executor-AEAIQZDC.js").then(
|
|
48773
48795
|
(module) => module.codexExternalAgentExecutor.create(params)
|
|
48774
|
-
) : import("./acp-subagent-executor-
|
|
48796
|
+
) : import("./acp-subagent-executor-TND6W2O5.js").then(
|
|
48775
48797
|
(module) => module.acpExternalAgentExecutor.create(params)
|
|
48776
48798
|
), "create")
|
|
48777
48799
|
});
|
|
@@ -48969,7 +48991,7 @@ __name(isPromiseLike, "isPromiseLike");
|
|
|
48969
48991
|
export {
|
|
48970
48992
|
validateAuthMethod,
|
|
48971
48993
|
normalizeDisabledToolList,
|
|
48972
|
-
|
|
48994
|
+
resolveHookSettingsForConfig,
|
|
48973
48995
|
appEvents,
|
|
48974
48996
|
skillArgsPath,
|
|
48975
48997
|
writeSkillArgs,
|