@qwen-code/qwen-code 0.21.6 → 0.21.7-nightly.20260807.fca8f3c1f
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/qc-helper/docs/configuration/settings.md +19 -9
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +1 -1
- package/bundled/qc-helper/docs/features/code-review.md +27 -0
- package/bundled/qc-helper/docs/qwen-serve.md +1 -1
- package/bundled/review/SKILL.md +48 -16
- package/chunks/{MaxSizedBox-2HFKP4LI.js → MaxSizedBox-NHT7OJY4.js} +38 -38
- package/chunks/{StandaloneSessionPicker-RBV72M5N.js → StandaloneSessionPicker-B2BHAP6E.js} +54 -53
- package/chunks/{acpAgent-WO6JFCVQ.js → acpAgent-ITFWQGW2.js} +80 -80
- package/chunks/{agent-AHGLYNZ4.js → agent-CQ66PAFN.js} +35 -35
- package/chunks/{agent-headless-NTXKKGRO.js → agent-headless-XFODWIW2.js} +35 -35
- package/chunks/{anthropicContentGenerator-3CAHEZBM.js → anthropicContentGenerator-DTMVEL5M.js} +7 -7
- package/chunks/{artifact-tool-RROCCJDA.js → artifact-tool-U4VOZIK5.js} +2 -2
- package/chunks/{askUserQuestion-2EPPBPUZ.js → askUserQuestion-XOBQLPFA.js} +2 -2
- package/chunks/{bridge-RPAU64CA.js → bridge-5XPZZ43S.js} +39 -39
- package/chunks/{channel-management-service-IGEUOVRT.js → channel-management-service-FSQ7SHYI.js} +1 -1
- package/chunks/{channel-settings-store-ON64MF7G.js → channel-settings-store-ZRWVDSMY.js} +41 -41
- package/chunks/{chunk-XC656O42.js → chunk-22NBYCPD.js} +3 -3
- package/chunks/chunk-2VSTGY6M.js +107 -0
- package/chunks/{chunk-MBEMTXQT.js → chunk-3K7FH2KQ.js} +1 -32
- package/chunks/{chunk-SKNE3KQC.js → chunk-3KY5HXE6.js} +4 -4
- package/chunks/{chunk-QYPT3QUD.js → chunk-3ULCB3NE.js} +3 -3
- package/chunks/{chunk-DVBEGGLG.js → chunk-4L3YFXQL.js} +10 -9
- package/chunks/{chunk-NGJOAKJY.js → chunk-4UKNQ2HI.js} +3 -3
- package/chunks/{chunk-QZKYZCN3.js → chunk-52AXQBAY.js} +3 -3
- package/chunks/{chunk-5MJGUQU5.js → chunk-5JFKVENR.js} +3 -3
- package/chunks/{chunk-TGGEZINK.js → chunk-5OYWFYX3.js} +7 -7
- package/chunks/{chunk-EXCEQD22.js → chunk-6IKXD7ZR.js} +4 -4
- package/chunks/{chunk-5L6CQ4ZU.js → chunk-6M26GBKX.js} +2 -2
- package/chunks/{chunk-XM2O73NC.js → chunk-7GXFPUOL.js} +2455 -1314
- package/chunks/{chunk-OP2OHZ7K.js → chunk-7HMDOAIC.js} +6 -6
- package/chunks/{chunk-33FNCQSY.js → chunk-7MH4J33A.js} +2 -2
- package/chunks/{chunk-2AGOQ7QO.js → chunk-7UFKAV7Y.js} +118 -6
- package/chunks/{chunk-JELIWHXD.js → chunk-AOHJKPKL.js} +1 -1
- package/chunks/{chunk-XA4TMLFN.js → chunk-ASSORJG6.js} +530 -388
- package/chunks/{chunk-GLNBDYUX.js → chunk-AXMWHKXA.js} +6 -2
- package/chunks/{chunk-H36SETQS.js → chunk-B2GJNDTV.js} +1 -1
- package/chunks/{chunk-3LZKY4V4.js → chunk-BDE433DP.js} +5 -5
- package/chunks/{chunk-DIT4V3XH.js → chunk-BEBG3YE6.js} +1 -1
- package/chunks/{chunk-QMBEW7EW.js → chunk-BGG4MBYD.js} +2 -2
- package/chunks/{chunk-6WBWIPBF.js → chunk-BVWVWGLE.js} +2 -2
- package/chunks/{chunk-GK2H5GRC.js → chunk-CFJIT7IA.js} +5 -5
- package/chunks/{chunk-2UISUFHQ.js → chunk-CJXIIILK.js} +3 -3
- package/chunks/{chunk-WK4TJUEA.js → chunk-CKASRHZI.js} +1 -1
- package/chunks/{chunk-Z7JILXGX.js → chunk-CNIID3TV.js} +3 -3
- package/chunks/{chunk-KKN2IE7Q.js → chunk-CTJLZLB5.js} +1 -1
- package/chunks/{chunk-4WTAQEHV.js → chunk-CYR3HI5X.js} +3 -3
- package/chunks/{chunk-4LKVQFHM.js → chunk-DREZZAZM.js} +2 -2
- package/chunks/{chunk-GESMMPAK.js → chunk-E24IQ3WV.js} +79 -59
- package/chunks/{chunk-T4JSA7KU.js → chunk-E2DXJHVN.js} +3 -3
- package/chunks/{chunk-SQC6K5HI.js → chunk-E33LOKRA.js} +1 -1
- package/chunks/{chunk-OWSW7EYP.js → chunk-ECTZI76Q.js} +6 -6
- package/chunks/{chunk-2DNKEBXY.js → chunk-EI3HZX6C.js} +1 -1
- package/chunks/{chunk-U25CMJYY.js → chunk-EKPKKXY2.js} +1 -1
- package/chunks/{chunk-432XCUHF.js → chunk-EQL65XGA.js} +1 -1
- package/chunks/{chunk-TYERNYH4.js → chunk-EUNWC2VS.js} +2 -2
- package/chunks/{chunk-KHUA3NQV.js → chunk-F4SQY4RB.js} +2 -2
- package/chunks/{chunk-YMBOEAF4.js → chunk-FBPPGNA4.js} +1 -1
- package/chunks/{chunk-WNU7TZTO.js → chunk-FCBM3ZRY.js} +3 -3
- package/chunks/{chunk-UH7Z7Y45.js → chunk-FOGU3LJX.js} +1 -1
- package/chunks/{chunk-PX5DNLSA.js → chunk-FTJUO7R2.js} +18 -10
- package/chunks/{chunk-E4WHKETF.js → chunk-FVKHVJZQ.js} +2 -49
- package/chunks/{chunk-YZQTA3ID.js → chunk-GDXET5XU.js} +31 -3396
- package/chunks/{chunk-A5YZ3FA2.js → chunk-GM463R2B.js} +1 -1
- package/chunks/{chunk-MOHAWIAW.js → chunk-GNPNYXJB.js} +2 -2
- package/chunks/{chunk-O7V7N4G7.js → chunk-GUHLKZ57.js} +198 -35
- package/chunks/{chunk-N2GJU6KI.js → chunk-HCVI44SK.js} +12 -12
- package/chunks/{chunk-OXX3FG2N.js → chunk-HMUV7245.js} +3 -3
- package/chunks/{chunk-A4VTILZT.js → chunk-I3LJQR5I.js} +115 -85
- package/chunks/{chunk-D7D7RXIJ.js → chunk-IC4Z6LX6.js} +1 -1
- package/chunks/{chunk-HU5TUALO.js → chunk-IIJEYBNH.js} +3 -3
- package/chunks/{chunk-EMYZIABH.js → chunk-IUFV6FYU.js} +1 -1
- package/chunks/{chunk-4S4OEQ6U.js → chunk-J6SZID63.js} +2 -2
- package/chunks/{chunk-G5NNWEYE.js → chunk-KGT25P47.js} +4 -4
- package/chunks/{chunk-BFHXDAR7.js → chunk-KKBPOU75.js} +1 -1
- package/chunks/{chunk-3UOLYNTF.js → chunk-KNTWLSVD.js} +6 -6
- package/chunks/{chunk-NKSF7HYF.js → chunk-KU4MUGRF.js} +1 -1
- package/chunks/{chunk-MGSSJT27.js → chunk-L4N6TIP7.js} +5 -3
- package/chunks/{chunk-VNQCPBC2.js → chunk-LFVXMYII.js} +3 -3
- package/chunks/{chunk-WVAESIM6.js → chunk-LZC3B5N2.js} +4 -4
- package/chunks/{chunk-U4AF3QLU.js → chunk-M5RUXX6P.js} +8 -8
- package/chunks/{chunk-6O5DVH27.js → chunk-M6HMMKVG.js} +1 -1
- package/chunks/{chunk-SLSWFHDF.js → chunk-MA5SUU2Q.js} +4 -4
- package/chunks/{chunk-C4CBJQKY.js → chunk-MPLEQFEL.js} +1 -1
- package/chunks/{chunk-T5U6IM4C.js → chunk-MVUQRLOH.js} +3 -3
- package/chunks/{chunk-GLWP3FDB.js → chunk-MZSJ43WV.js} +31 -2
- package/chunks/{chunk-ZPPP6VCL.js → chunk-NG2R4N5O.js} +1 -1
- package/chunks/{chunk-UGTWD35F.js → chunk-NLREQJFK.js} +1 -1
- package/chunks/{chunk-RK2EE3T7.js → chunk-OCEXSMWS.js} +2 -2
- package/chunks/{chunk-3RXUYQJI.js → chunk-OIVKILPI.js} +49 -0
- package/chunks/{chunk-LBWNSLJK.js → chunk-ONSZH6VM.js} +2 -2
- package/chunks/{chunk-R5RBXLNC.js → chunk-ORTYIRZU.js} +5 -5
- package/chunks/{chunk-HY25ULVN.js → chunk-ORYNZTB7.js} +131 -48
- package/chunks/{chunk-DYA25Y7U.js → chunk-OWMAZHIX.js} +1 -1
- package/chunks/{chunk-SQOMTWQT.js → chunk-P2PTEG3P.js} +4 -4
- package/chunks/{chunk-IMOQO6YL.js → chunk-P4PAGFDT.js} +1 -1
- package/chunks/{chunk-BOGOR4HB.js → chunk-PRYJZGR4.js} +7 -7
- package/chunks/{chunk-K2B3X3E7.js → chunk-PVNUY34T.js} +4 -4
- package/chunks/{chunk-WO2B5E5B.js → chunk-Q3JQ7OSU.js} +1 -1
- package/chunks/{chunk-GWRHVJY2.js → chunk-QBUXNKTM.js} +20 -20
- package/chunks/{chunk-75QMRMO7.js → chunk-QT34NLGU.js} +3 -3
- package/chunks/{chunk-CJ5WLD5Y.js → chunk-RFA3YH5R.js} +2 -2
- package/chunks/chunk-RGSBTHSU.js +3381 -0
- package/chunks/{chunk-Q5RM32DR.js → chunk-SDSQ7C4Y.js} +1 -1
- package/chunks/{chunk-YAVY33G4.js → chunk-SEZ556DZ.js} +1 -1
- package/chunks/chunk-SOORFWKY.js +155 -0
- package/chunks/{chunk-VGFPFM4U.js → chunk-ST774VGY.js} +42 -16
- package/chunks/{chunk-CA4UIDFU.js → chunk-T444EKH5.js} +1 -1
- package/chunks/{chunk-ODPXHGLL.js → chunk-T7WJWZCG.js} +2 -2
- package/chunks/{chunk-RFUHDCNF.js → chunk-TPQ6RO65.js} +1 -1
- package/chunks/{chunk-KVUBYJDM.js → chunk-TZEZYNYD.js} +1 -1
- package/chunks/{chunk-PPUOYL77.js → chunk-U5G2PZAQ.js} +49 -18
- package/chunks/{chunk-XC2VAFVZ.js → chunk-UVX4Y6IN.js} +1 -1
- package/chunks/{chunk-4JH77A2U.js → chunk-VHINCBEK.js} +1 -1
- package/chunks/{chunk-2POQWYM6.js → chunk-VIOH2OOE.js} +3 -3
- package/chunks/{chunk-URN76TKR.js → chunk-WCG5O7IP.js} +2 -2
- package/chunks/{chunk-RHTTKJTP.js → chunk-WIAN5MYB.js} +1 -1
- package/chunks/{chunk-JE44IPH6.js → chunk-WLAO54CV.js} +2 -2
- package/chunks/{chunk-W5DXUTXD.js → chunk-X26KCG3L.js} +8 -8
- package/chunks/{chunk-TOGZTG4X.js → chunk-X6VISCPN.js} +2 -2
- package/chunks/{chunk-TSERKWCX.js → chunk-XCWO3SMQ.js} +3 -3
- package/chunks/{chunk-VSALQLT7.js → chunk-XR4VN3GB.js} +1 -1
- package/chunks/{chunk-536SWZTA.js → chunk-Y4F5PBY5.js} +4 -4
- package/chunks/{chunk-3PRJYMXC.js → chunk-Y4NGLFGJ.js} +1 -1
- package/chunks/{chunk-ULPQQSDN.js → chunk-YD26XH5B.js} +3 -3
- package/chunks/{chunk-3LGZEYOF.js → chunk-YHEEE624.js} +2 -2
- package/chunks/{chunk-FZFP7RZI.js → chunk-YPQ4IEVV.js} +3 -3
- package/chunks/{chunk-SUKEUUAA.js → chunk-Z2MB7HS7.js} +1 -1
- package/chunks/{chunk-ACZRB7AD.js → chunk-ZFJBQATO.js} +3 -3
- package/chunks/{chunk-LAAFLUQV.js → chunk-ZXU5UHMI.js} +1 -1
- package/chunks/{computer-use-5HXJ2P4X.js → computer-use-4WCG6FX3.js} +35 -35
- package/chunks/{config-utils-VXD4SPVR.js → config-utils-K7SCOWHD.js} +2 -2
- package/chunks/{contextCommand-7BEHRX2H.js → contextCommand-MLJEOUZY.js} +37 -37
- package/chunks/{core-runtime-U4VJ5TIV.js → core-runtime-LKSDQXFB.js} +35 -35
- package/chunks/{create-sub-session-6EWLAZD5.js → create-sub-session-E4PBYXV5.js} +2 -2
- package/chunks/{create-sub-session-QZNQY332.js → create-sub-session-ZJ7OYXRW.js} +35 -35
- package/chunks/{cron-create-CCRIULJE.js → cron-create-GRBWYMIJ.js} +4 -4
- package/chunks/{cron-delete-FCFW6BGP.js → cron-delete-4CMKBR2M.js} +4 -4
- package/chunks/{cron-list-QDBVCHRF.js → cron-list-W7K4ASOA.js} +4 -4
- package/chunks/{daemon-YI5RY62O.js → daemon-SCTQMM7Z.js} +50 -2
- package/chunks/{daemon-status-provider-UJUGTDTL.js → daemon-status-provider-2TPABSC6.js} +43 -43
- package/chunks/{daemon-trust-policy-ZHDD5VYQ.js → daemon-trust-policy-U5Q3LRKV.js} +40 -40
- package/chunks/{daemon-trust-policy-monitor-5SHYBDGA.js → daemon-trust-policy-monitor-REIZABHN.js} +40 -40
- package/chunks/{deferred-core-runtime-QWAEBTR5.js → deferred-core-runtime-ONWSGDPN.js} +35 -35
- package/chunks/{display-image-GUJA352B.js → display-image-O2XFPQTC.js} +4 -4
- package/chunks/{dist-A7H2KKUC.js → dist-K4WWQBHS.js} +277 -98
- package/chunks/{earlyInputCapture-5BMSGKOI.js → earlyInputCapture-Q7CO2QN4.js} +36 -36
- package/chunks/{edit-IVQQVYYK.js → edit-PBU33DGY.js} +35 -35
- package/chunks/{enter-worktree-P3DF2N6O.js → enter-worktree-WCRF2AA5.js} +35 -35
- package/chunks/{enterPlanMode-KKTDVLAD.js → enterPlanMode-E2RXSZSG.js} +35 -35
- package/chunks/{environment-W5TRDM3G.js → environment-KA6OBBY4.js} +37 -37
- package/chunks/{errors-GJJB36IG.js → errors-XYCANYTN.js} +37 -37
- package/chunks/{exit-worktree-LV5RLOCU.js → exit-worktree-CQLRKE26.js} +35 -35
- package/chunks/{exitPlanMode-TUGOB2LL.js → exitPlanMode-AP7XQVRL.js} +35 -35
- package/chunks/{fast-path-2FU23PAQ.js → fast-path-DHKCBUUQ.js} +2 -2
- package/chunks/{gemini-KDULDQPP.js → gemini-RGYIKOL6.js} +72 -72
- package/chunks/{geminiContentGenerator-LOCFHNVA.js → geminiContentGenerator-ZLI7NARI.js} +6 -6
- package/chunks/{glob-Z4NQFKWS.js → glob-R4R7OG4W.js} +35 -35
- package/chunks/{goal-tools-3AZKX5WQ.js → goal-tools-APOW6UXL.js} +3 -3
- package/chunks/{grep-Z67Z7EN6.js → grep-BO5M2UCN.js} +35 -35
- package/chunks/{handleAutoUpdate-DFUZE6I6.js → handleAutoUpdate-ZTHIKBZM.js} +39 -39
- package/chunks/{i18n-R4FMZ7N2.js → i18n-GNC2NNVA.js} +36 -36
- package/chunks/{image-gen-4CQJPQP5.js → image-gen-2XYVOLT5.js} +9 -9
- package/chunks/{initializer-DK672ZVE.js → initializer-VXLEBSSB.js} +41 -41
- package/chunks/{installationInfo-PO4Z3ES7.js → installationInfo-QBJ7GECU.js} +36 -36
- package/chunks/{keychain-token-storage-7BT4TQ2A.js → keychain-token-storage-TVAMTNP7.js} +2 -2
- package/chunks/{list-QXQF6C53.js → list-VLARA3NO.js} +43 -43
- package/chunks/{list-agents-GC4BRET7.js → list-agents-KFFIIS2G.js} +2 -2
- package/chunks/{loadedSettingsAdapter-4D7GUGW6.js → loadedSettingsAdapter-AQWO3DKQ.js} +40 -40
- package/chunks/{loggingContentGenerator-2P3MNACM.js → loggingContentGenerator-JPOQJB44.js} +17 -17
- package/chunks/{loop-wakeup-SQQSBMEY.js → loop-wakeup-TLMJPMMP.js} +5 -5
- package/chunks/{ls-63CC3NNX.js → ls-UVVE2XGE.js} +4 -4
- package/chunks/{lsp-P6NVJVNT.js → lsp-QMEA2VLB.js} +2 -2
- package/chunks/{managed-npm-update-LWVJQTWO.js → managed-npm-update-LEIM7R7Z.js} +36 -36
- package/chunks/{mcp-GHETAR6V.js → mcp-WDSZDEUK.js} +40 -40
- package/chunks/{monitor-4T7W4M6Q.js → monitor-XEIMDJKT.js} +35 -35
- package/chunks/{nonInteractiveCli-P4UKCJFM.js → nonInteractiveCli-GA7CHB27.js} +72 -72
- package/chunks/{notebook-edit-OC2V7U5D.js → notebook-edit-HBVYJEYN.js} +35 -35
- package/chunks/{openaiContentGenerator-RAJUFWQY.js → openaiContentGenerator-D6DYXZD3.js} +19 -19
- package/chunks/{pidfile-HVPYVRLS.js → pidfile-DWDNVKET.js} +36 -36
- package/chunks/{processUtils-VIQ4JHVX.js → processUtils-Y2SQQ2RR.js} +2 -2
- package/chunks/{qwenContentGenerator-2QLCUFNZ.js → qwenContentGenerator-MTXRA2IT.js} +40 -40
- package/chunks/{qwenOAuth2-J2X3EN43.js → qwenOAuth2-HQSYUQ2E.js} +8 -8
- package/chunks/{read-file-ZNAN2B26.js → read-file-IUAEEXBO.js} +10 -10
- package/chunks/{read-mcp-resource-RTSSEER5.js → read-mcp-resource-2TNSJTC3.js} +2 -2
- package/chunks/{record-artifact-E6AWQU2Z.js → record-artifact-RAON52FC.js} +3 -3
- package/chunks/{resumeHistoryUtils-RCY7AL5Y.js → resumeHistoryUtils-J244DBOH.js} +41 -40
- package/chunks/{ripGrep-C3KMLZM5.js → ripGrep-NBENZCHO.js} +35 -35
- package/chunks/{run-qwen-serve-3JN75CIQ.js → run-qwen-serve-2G754FJE.js} +65 -43
- package/chunks/{runtime-VUA4WQYD.js → runtime-KBSESBIX.js} +43 -43
- package/chunks/{scheduler-Z4IBXCOY.js → scheduler-INHLDC26.js} +35 -35
- package/chunks/{sdk-exporters-http-IL2346MJ.js → sdk-exporters-http-KHAB5JSD.js} +2 -2
- package/chunks/{sdk-impl-SYKGVWOZ.js → sdk-impl-KD7FSTC3.js} +2 -2
- package/chunks/{send-message-TL6FIMMN.js → send-message-ZM7MRUGP.js} +5 -5
- package/chunks/{serve-67T3P7XI.js → serve-G2BCUQNM.js} +41 -41
- package/chunks/{server-46ZO2CLV.js → server-3BD6DIW3.js} +621 -332
- package/chunks/{session-B4IFAFC4.js → session-HGXANTYW.js} +73 -73
- package/chunks/{settings-AI2BTBOZ.js → settings-VYFBEZ2R.js} +39 -39
- package/chunks/{shell-BKII3B6E.js → shell-3LBKDXAW.js} +35 -35
- package/chunks/{skill-6CFOWVGA.js → skill-W576UXSL.js} +14 -14
- package/chunks/{skill-settings-6BFQWMW4.js → skill-settings-ZNUIJMJT.js} +39 -39
- package/chunks/{spawnChannel-FJXW35U7.js → spawnChannel-AUUVHV5S.js} +37 -37
- package/chunks/{standalone-update-WVINHRNS.js → standalone-update-WEQVL7DN.js} +37 -37
- package/chunks/{startInteractiveUI-YE57CJ57.js → startInteractiveUI-V3B5M5PY.js} +399 -159
- package/chunks/{syntheticOutput-BN7E626U.js → syntheticOutput-ZLCUTKO2.js} +3 -3
- package/chunks/{task-create-Q727MXHJ.js → task-create-CQP5UEA3.js} +9 -9
- package/chunks/{task-list-G6KPQ5JT.js → task-list-XLEZOJXP.js} +5 -5
- package/chunks/{task-stop-TNXRNAL2.js → task-stop-7ZQM5CFF.js} +2 -2
- package/chunks/{task-update-YB7PXO4R.js → task-update-JA75U2SN.js} +9 -9
- package/chunks/{team-create-GNC7NFY6.js → team-create-4TEVQYI5.js} +35 -35
- package/chunks/{team-delete-GDO7H2T4.js → team-delete-MHY3UZGY.js} +5 -5
- package/chunks/{team-plan-approval-ECALJLIO.js → team-plan-approval-UOSTAB7R.js} +35 -35
- package/chunks/{terminal-image-renderer-II74TFVW.js → terminal-image-renderer-VO6W4YSM.js} +41 -36
- package/chunks/{theme-manager-2MGEDD22.js → theme-manager-HOYUCAJ5.js} +36 -36
- package/chunks/{todoWrite-MHWHO5UO.js → todoWrite-UPVOHYGD.js} +4 -4
- package/chunks/{tool-search-S6LRRACA.js → tool-search-NRMWTH3L.js} +13 -13
- package/chunks/{total-session-admission-7WVAWQPU.js → total-session-admission-KHBGXD6A.js} +39 -39
- package/chunks/{trustedFolders-NFS4KHO4.js → trustedFolders-AH242HLO.js} +36 -36
- package/chunks/{update-relaunch-Q5HLZ6UW.js → update-relaunch-R3M25PND.js} +5 -5
- package/chunks/{updateCheck-UOVZSTP7.js → updateCheck-4O2CMHMG.js} +38 -38
- package/chunks/{useAutoAcceptIndicator-PC6MOJCO.js → useAutoAcceptIndicator-KZSKP3RY.js} +42 -42
- package/chunks/{validateNonInterActiveAuth-YMQP3ZM7.js → validateNonInterActiveAuth-7AXUFNBE.js} +69 -69
- package/chunks/{version-T4AQFZJH.js → version-BE7H2MTM.js} +1 -1
- package/chunks/{web-fetch-JQCJHEEX.js → web-fetch-C7FQ24BP.js} +13 -13
- package/chunks/{web-search-QGZ2KY4G.js → web-search-7FPW6ECJ.js} +9 -9
- package/chunks/web-shell-static-O73YPVVC.js +33 -0
- package/chunks/{workflow-YIT27YWZ.js → workflow-3LAE5AL7.js} +36 -36
- package/chunks/{workspace-providers-status-FIDZQ2PL.js → workspace-providers-status-UXZKS6SE.js} +43 -43
- package/chunks/{workspace-registration-store-RCSPE4DU.js → workspace-registration-store-DSS57KLV.js} +1 -1
- package/chunks/{workspace-registry-5PEUCY6E.js → workspace-registry-VOSOZ4WU.js} +39 -39
- package/chunks/{workspace-service-LANDVPL7.js → workspace-service-MWWHXZGQ.js} +45 -45
- package/chunks/{workspace-skills-status-2IQVJNIN.js → workspace-skills-status-DN56VF74.js} +41 -41
- package/chunks/{workspace-trust-reconciler-CZPZZCZC.js → workspace-trust-reconciler-3GOQYMND.js} +45 -45
- package/chunks/{write-file-G5VNGCOG.js → write-file-B4YZQZ2K.js} +35 -35
- package/chunks/{zoom-image-6RBLD7X6.js → zoom-image-L4QKXYG2.js} +10 -10
- package/cli.js +12 -12
- package/package.json +3 -3
- package/web-shell/assets/{arc-B-Vtkp1W.js → arc-Ip-FFDJ0.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-qmTXIj64.js → architectureDiagram-3BPJPVTR-CChqgwIb.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-ZlnXEtdP.js → blockDiagram-GPEHLZMM-BHN-Tfss.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-Wyoirf6Z.js → c4Diagram-AAUBKEIU-BhyjzDjN.js} +1 -1
- package/web-shell/assets/channel-Cu8qd6OB.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-WQwbq9d8.js → chunk-2J33WTMH-BB9eyHrx.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-DQKnAXC4.js → chunk-4BX2VUAB-BeV7ce_J.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-DIdgXNcO.js → chunk-55IACEB6-DO7kXDiV.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-CUwGOLEd.js → chunk-727SXJPM-B27MPznD.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-CCBGZFZ4.js → chunk-AQP2D5EJ-DHIjqjD_.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-DMGXProk.js → chunk-FMBD7UC4-DabMqyN2.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-yejcFqsh.js → chunk-ND2GUHAM-Dw7Nnnxc.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-DxCyqTf7.js → chunk-QZHKN3VN-DdaZew1Q.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-BI3KrXhq.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BI3KrXhq.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-DOrF3cg_.js → cose-bilkent-S5V4N54A-CgBpCYH5.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-Be6CdYQ_.js → dagre-BM42HDAG-BB4IU8G0.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-B_Rjsft2.js → diagram-2AECGRRQ-BcUTHU37.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-BvQbKSm1.js → diagram-5GNKFQAL-B6Lyihyv.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-BsdmMdpS.js → diagram-KO2AKTUF-CRIJOjpG.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-CrQlBaNr.js → diagram-LMA3HP47-DdNiwWWT.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-aB1MD_DL.js → diagram-OG6HWLK6-Dz4b32Do.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-F-eUUn9n.js → erDiagram-TEJ5UH35-D-8NGw77.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-DY_d8lUK.js → flowDiagram-I6XJVG4X-Dun26LyM.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-Dqu7KBPg.js → ganttDiagram-6RSMTGT7-F10Hu1Gc.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-2IkU_VEj.js → gitGraphDiagram-PVQCEYII-Bf8Ez6-D.js} +1 -1
- package/web-shell/assets/{index-BuSbqggh.js → index-BXqw-nGq.js} +1 -1
- package/web-shell/assets/{index-DrfC2e9s.js → index-hcgjV7vS.js} +333 -333
- package/web-shell/assets/{infoDiagram-5YYISTIA-C4orwzPw.js → infoDiagram-5YYISTIA-DVgTMLvj.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-fXUEfef_.js → ishikawaDiagram-YF4QCWOH-uT-KepvK.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-Bs0I1_J5.js → journeyDiagram-JHISSGLW-Vg_XadQf.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-BPRj1dw_.js → kanban-definition-UN3LZRKU-Dyv1ESBE.js} +1 -1
- package/web-shell/assets/{linear-DFS6ZDpW.js → linear-BMIepYX3.js} +1 -1
- package/web-shell/assets/{mermaid.core-CZxjWMaO.js → mermaid.core-zA8pJ9ag.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-Dsr3PmNs.js → mindmap-definition-RKZ34NQL-BCW_BZ_5.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-D5Ngpz5Y.js → pieDiagram-4H26LBE5-DseNEGp2.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-WJK9I25z.js → quadrantDiagram-W4KKPZXB-6Z7wr1Fi.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-CmrYcwOH.js → requirementDiagram-4Y6WPE33-CVOlCRPf.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-7SjCc4Mv.js → sankeyDiagram-5OEKKPKP-CGhgrUJZ.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-Dl9E0IRM.js → sequenceDiagram-3UESZ5HK-dlqmpLuQ.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-CRRio7yV.js → stateDiagram-AJRCARHV-B9EW10Xb.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CJTZJJ5X.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-DVyXjjfq.js → timeline-definition-PNZ67QCA-BBRh0mgZ.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-Nb2Lckzq.js → vennDiagram-CIIHVFJN-B8Gs-REP.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-DuL_otIP.js → wardley-L42UT6IY-D_y80Ur7.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-DVI9Q4Aa.js → wardleyDiagram-YWT4CUSO-D-CNfHJ-.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-BNjAm7KD.js → xychartDiagram-2RQKCTM6-DQ5CvELo.js} +1 -1
- package/web-shell/index.html +1 -1
- package/web-shell/assets/channel-DXaHnfjS.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-BigU82A0.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BigU82A0.js +0 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-1atT7XaU.js +0 -1
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
// Force strict mode and setup for ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
require_express
|
|
5
|
+
} from "./chunk-GDXET5XU.js";
|
|
6
|
+
import {
|
|
7
|
+
writeStderrLine
|
|
8
|
+
} from "./chunk-KGJGEEVR.js";
|
|
9
|
+
import {
|
|
10
|
+
init_esbuild_shims
|
|
11
|
+
} from "./chunk-5O2XNYP6.js";
|
|
12
|
+
import {
|
|
13
|
+
__name,
|
|
14
|
+
__toESM
|
|
15
|
+
} from "./chunk-J2S4EL5Y.js";
|
|
16
|
+
|
|
17
|
+
// packages/cli/src/serve/web-shell-static.ts
|
|
18
|
+
init_esbuild_shims();
|
|
19
|
+
var import_express = __toESM(require_express(), 1);
|
|
20
|
+
import * as path from "node:path";
|
|
21
|
+
|
|
22
|
+
// packages/cli/src/serve/debug-mode.ts
|
|
23
|
+
init_esbuild_shims();
|
|
24
|
+
function isServeDebugMode() {
|
|
25
|
+
const value = process.env["QWEN_SERVE_DEBUG"];
|
|
26
|
+
if (!value) return false;
|
|
27
|
+
return !["0", "false", "off", "no"].includes(value.trim().toLowerCase());
|
|
28
|
+
}
|
|
29
|
+
__name(isServeDebugMode, "isServeDebugMode");
|
|
30
|
+
|
|
31
|
+
// packages/cli/src/serve/web-shell-static.ts
|
|
32
|
+
var WEB_SHELL_CSP_DIRECTIVES = [
|
|
33
|
+
"default-src 'self'",
|
|
34
|
+
"script-src 'self' 'unsafe-inline' 'unsafe-eval' 'wasm-unsafe-eval'",
|
|
35
|
+
"style-src 'self' 'unsafe-inline'",
|
|
36
|
+
"font-src 'self' data:",
|
|
37
|
+
"img-src 'self' data: blob:",
|
|
38
|
+
"connect-src 'self'",
|
|
39
|
+
"worker-src 'self' blob:",
|
|
40
|
+
// base-uri does NOT fall back to default-src; lock it so an injected <base>
|
|
41
|
+
// (the SPA renders AI-generated markdown) cannot repoint relative URLs to an
|
|
42
|
+
// attacker origin.
|
|
43
|
+
"base-uri 'none'"
|
|
44
|
+
];
|
|
45
|
+
function buildWebShellCsp(frameAncestors = []) {
|
|
46
|
+
const fa = frameAncestors.length ? `frame-ancestors ${frameAncestors.join(" ")}` : "frame-ancestors 'none'";
|
|
47
|
+
return [...WEB_SHELL_CSP_DIRECTIVES, fa].join("; ");
|
|
48
|
+
}
|
|
49
|
+
__name(buildWebShellCsp, "buildWebShellCsp");
|
|
50
|
+
var WEB_SHELL_CSP = buildWebShellCsp();
|
|
51
|
+
function isDocumentNavigation(req) {
|
|
52
|
+
const fetchMode = req.headers["sec-fetch-mode"];
|
|
53
|
+
const fetchDest = req.headers["sec-fetch-dest"];
|
|
54
|
+
const accept = req.headers.accept ?? "";
|
|
55
|
+
return fetchMode === "navigate" || fetchDest === "document" || accept.trim().toLowerCase().startsWith("text/html");
|
|
56
|
+
}
|
|
57
|
+
__name(isDocumentNavigation, "isDocumentNavigation");
|
|
58
|
+
var SESSION_DEEP_LINK_PATH = /^\/session\/[^/]+\/?$/u;
|
|
59
|
+
function isPreAuthWebShellRequest(req) {
|
|
60
|
+
if (req.method !== "GET" && req.method !== "HEAD") return false;
|
|
61
|
+
const reqPath = req.path.toLowerCase();
|
|
62
|
+
if (reqPath === "/" || // Express non-strict routing compiles `/` to `/^(?:\/)(?:\/$)?$/i`, so
|
|
63
|
+
// a raw `//` also matches `app.get('/')` pre-auth (but `///` does not).
|
|
64
|
+
reqPath === "//" || reqPath === "/assets" || reqPath.startsWith("/assets/"))
|
|
65
|
+
return true;
|
|
66
|
+
return SESSION_DEEP_LINK_PATH.test(reqPath) && isDocumentNavigation(req);
|
|
67
|
+
}
|
|
68
|
+
__name(isPreAuthWebShellRequest, "isPreAuthWebShellRequest");
|
|
69
|
+
function createSendIndex(webShellDir, frameAncestors = []) {
|
|
70
|
+
const indexPath = path.join(webShellDir, "index.html");
|
|
71
|
+
const csp = buildWebShellCsp(frameAncestors);
|
|
72
|
+
return (res) => {
|
|
73
|
+
res.status(200).set("Content-Security-Policy", csp).set("X-Content-Type-Options", "nosniff").set("Referrer-Policy", "no-referrer").set(
|
|
74
|
+
// `microphone=(self)` lets the same-origin Web Shell document request
|
|
75
|
+
// the mic for voice dictation (the prompt won't even appear under an
|
|
76
|
+
// empty `microphone=()` allowlist). Still blocks cross-origin iframes;
|
|
77
|
+
// camera/geolocation/payment stay disabled (unused).
|
|
78
|
+
"Permissions-Policy",
|
|
79
|
+
"camera=(), microphone=(self), geolocation=(), payment=()"
|
|
80
|
+
).set("Cache-Control", "no-cache");
|
|
81
|
+
if (frameAncestors.length === 0) {
|
|
82
|
+
res.set("X-Frame-Options", "DENY");
|
|
83
|
+
}
|
|
84
|
+
res.sendFile(
|
|
85
|
+
indexPath,
|
|
86
|
+
{ cacheControl: false, dotfiles: "allow" },
|
|
87
|
+
(err) => {
|
|
88
|
+
if (!err) return;
|
|
89
|
+
writeStderrLine(
|
|
90
|
+
`qwen serve: Web Shell index send failed: ${err instanceof Error ? err.message : String(err)}`
|
|
91
|
+
);
|
|
92
|
+
if (!res.headersSent) {
|
|
93
|
+
res.status(500).type("text/plain").send("Failed to load Web Shell");
|
|
94
|
+
} else {
|
|
95
|
+
res.end();
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
);
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
__name(createSendIndex, "createSendIndex");
|
|
102
|
+
function mountWebShellAssets(app, webShellDir, frameAncestors = []) {
|
|
103
|
+
const sendIndex = createSendIndex(webShellDir, frameAncestors);
|
|
104
|
+
app.use(
|
|
105
|
+
"/assets",
|
|
106
|
+
import_express.default.static(path.join(webShellDir, "assets"), {
|
|
107
|
+
index: false,
|
|
108
|
+
immutable: true,
|
|
109
|
+
maxAge: "1y"
|
|
110
|
+
})
|
|
111
|
+
);
|
|
112
|
+
app.use("/assets", (req, res) => {
|
|
113
|
+
if (isServeDebugMode()) {
|
|
114
|
+
writeStderrLine(
|
|
115
|
+
`qwen serve: Web Shell asset not found: ${req.originalUrl}`
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
res.status(404).type("text/plain").send("Not found");
|
|
119
|
+
});
|
|
120
|
+
app.get("/", (_req, res) => sendIndex(res));
|
|
121
|
+
app.get("/session/:id", (req, res, next) => {
|
|
122
|
+
if (!isDocumentNavigation(req)) return next();
|
|
123
|
+
sendIndex(res);
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
__name(mountWebShellAssets, "mountWebShellAssets");
|
|
127
|
+
function mountWebShellSpaFallback(app, webShellDir, frameAncestors = []) {
|
|
128
|
+
const sendIndex = createSendIndex(webShellDir, frameAncestors);
|
|
129
|
+
app.use((req, res, next) => {
|
|
130
|
+
if (req.method !== "GET" && req.method !== "HEAD") return next();
|
|
131
|
+
if (!isDocumentNavigation(req)) return next();
|
|
132
|
+
if (isServeDebugMode()) {
|
|
133
|
+
writeStderrLine(
|
|
134
|
+
`qwen serve: Web Shell SPA fallback served for ${req.method} ${req.originalUrl}`
|
|
135
|
+
);
|
|
136
|
+
}
|
|
137
|
+
sendIndex(res);
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
__name(mountWebShellSpaFallback, "mountWebShellSpaFallback");
|
|
141
|
+
|
|
142
|
+
export {
|
|
143
|
+
isServeDebugMode,
|
|
144
|
+
buildWebShellCsp,
|
|
145
|
+
WEB_SHELL_CSP,
|
|
146
|
+
isDocumentNavigation,
|
|
147
|
+
isPreAuthWebShellRequest,
|
|
148
|
+
mountWebShellAssets,
|
|
149
|
+
mountWebShellSpaFallback
|
|
150
|
+
};
|
|
151
|
+
/**
|
|
152
|
+
* @license
|
|
153
|
+
* Copyright 2025 Qwen Team
|
|
154
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
155
|
+
*/
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
theme
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-EKPKKXY2.js";
|
|
6
6
|
import {
|
|
7
7
|
require_jsx_runtime
|
|
8
8
|
} from "./chunk-SV5PQVQE.js";
|
|
@@ -14,10 +14,14 @@ import {
|
|
|
14
14
|
import {
|
|
15
15
|
require_react
|
|
16
16
|
} from "./chunk-5QWWOFGG.js";
|
|
17
|
+
import {
|
|
18
|
+
collectInlineImages,
|
|
19
|
+
extractInlineContentRuns
|
|
20
|
+
} from "./chunk-2VSTGY6M.js";
|
|
17
21
|
import {
|
|
18
22
|
formatHistoryGapNotice,
|
|
19
23
|
indexGapsByChild
|
|
20
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-TPQ6RO65.js";
|
|
21
25
|
import {
|
|
22
26
|
stringWidth
|
|
23
27
|
} from "./chunk-2MIN6GRR.js";
|
|
@@ -29,21 +33,21 @@ import {
|
|
|
29
33
|
} from "./chunk-3SH53ANB.js";
|
|
30
34
|
import {
|
|
31
35
|
t
|
|
32
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-F4SQY4RB.js";
|
|
33
37
|
import {
|
|
34
38
|
getToolResponseDisplayText,
|
|
35
39
|
stripTrailingUserPromptSubmitContextPart
|
|
36
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-I3LJQR5I.js";
|
|
37
41
|
import {
|
|
38
42
|
stripAnsi
|
|
39
43
|
} from "./chunk-TWPJO254.js";
|
|
40
44
|
import {
|
|
41
45
|
GoalPersistenceUnavailableError,
|
|
42
46
|
parseGoalStateRecordPayloadV2
|
|
43
|
-
} from "./chunk-
|
|
47
|
+
} from "./chunk-3K7FH2KQ.js";
|
|
44
48
|
import {
|
|
45
49
|
ToolDisplayNames
|
|
46
|
-
} from "./chunk-
|
|
50
|
+
} from "./chunk-IC4Z6LX6.js";
|
|
47
51
|
import {
|
|
48
52
|
init_esbuild_shims
|
|
49
53
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -3183,7 +3187,7 @@ function convertToHistoryItems(conversation, config, historyGaps) {
|
|
|
3183
3187
|
case "assistant": {
|
|
3184
3188
|
const parts = record.message?.parts;
|
|
3185
3189
|
const thoughtText = !config ? extractThoughtTextFromParts(parts) : "";
|
|
3186
|
-
const
|
|
3190
|
+
const displayRuns = extractInlineContentRuns(parts, "\n");
|
|
3187
3191
|
const functionCalls = extractFunctionCalls(parts);
|
|
3188
3192
|
if (thoughtText) {
|
|
3189
3193
|
if (currentToolGroup.length > 0) {
|
|
@@ -3195,7 +3199,7 @@ function convertToHistoryItems(conversation, config, historyGaps) {
|
|
|
3195
3199
|
}
|
|
3196
3200
|
items.push({ type: "gemini_thought", text: thoughtText });
|
|
3197
3201
|
}
|
|
3198
|
-
if (
|
|
3202
|
+
if (displayRuns.length > 0) {
|
|
3199
3203
|
if (currentToolGroup.length > 0) {
|
|
3200
3204
|
items.push({
|
|
3201
3205
|
type: "tool_group",
|
|
@@ -3203,11 +3207,27 @@ function convertToHistoryItems(conversation, config, historyGaps) {
|
|
|
3203
3207
|
});
|
|
3204
3208
|
currentToolGroup = [];
|
|
3205
3209
|
}
|
|
3206
|
-
|
|
3207
|
-
type
|
|
3208
|
-
|
|
3209
|
-
|
|
3210
|
-
|
|
3210
|
+
for (const [index, run] of displayRuns.entries()) {
|
|
3211
|
+
const type = index === 0 ? "gemini" : "gemini_content";
|
|
3212
|
+
const timestamp = index === 0 ? { timestamp: new Date(record.timestamp).getTime() } : {};
|
|
3213
|
+
if (run.kind === "text") {
|
|
3214
|
+
items.push({ type, text: run.text, ...timestamp });
|
|
3215
|
+
} else if (run.kind === "image") {
|
|
3216
|
+
items.push({
|
|
3217
|
+
type,
|
|
3218
|
+
text: "",
|
|
3219
|
+
images: [run.image],
|
|
3220
|
+
...timestamp
|
|
3221
|
+
});
|
|
3222
|
+
} else {
|
|
3223
|
+
items.push({
|
|
3224
|
+
type,
|
|
3225
|
+
text: "",
|
|
3226
|
+
omittedImageCount: run.count,
|
|
3227
|
+
...timestamp
|
|
3228
|
+
});
|
|
3229
|
+
}
|
|
3230
|
+
}
|
|
3211
3231
|
}
|
|
3212
3232
|
for (const fc of functionCalls) {
|
|
3213
3233
|
const tool = getTool(config, fc.name);
|
|
@@ -3229,6 +3249,7 @@ function convertToHistoryItems(conversation, config, historyGaps) {
|
|
|
3229
3249
|
const callId = record.toolCallResult.callId;
|
|
3230
3250
|
const toolCall = currentToolGroup.find((t2) => t2.callId === callId);
|
|
3231
3251
|
if (toolCall) {
|
|
3252
|
+
const responseParts = record.toolCallResult.responseParts ?? record.message?.parts;
|
|
3232
3253
|
const rawDisplay = record.toolCallResult.resultDisplay;
|
|
3233
3254
|
toolCall.resultDisplay = rawDisplay;
|
|
3234
3255
|
if (record.toolCallResult.visionBridgeNotice !== void 0) {
|
|
@@ -3236,10 +3257,15 @@ function convertToHistoryItems(conversation, config, historyGaps) {
|
|
|
3236
3257
|
}
|
|
3237
3258
|
const rawStatus = record.toolCallResult["status"];
|
|
3238
3259
|
toolCall.status = rawStatus === "error" ? "Error" /* Error */ : "Success" /* Success */;
|
|
3260
|
+
const { images, omittedImageCount } = collectInlineImages(responseParts);
|
|
3261
|
+
if (images.length > 0) {
|
|
3262
|
+
toolCall.images = images;
|
|
3263
|
+
}
|
|
3264
|
+
if (omittedImageCount > 0) {
|
|
3265
|
+
toolCall.omittedImageCount = omittedImageCount;
|
|
3266
|
+
}
|
|
3239
3267
|
if (toolCall.status === "Success" /* Success */ && isCollapsibleTool(toolCall.name)) {
|
|
3240
|
-
toolCall.detailedDisplay = getToolResponseDisplayText(
|
|
3241
|
-
record.toolCallResult.responseParts ?? record.message?.parts
|
|
3242
|
-
);
|
|
3268
|
+
toolCall.detailedDisplay = getToolResponseDisplayText(responseParts);
|
|
3243
3269
|
}
|
|
3244
3270
|
}
|
|
3245
3271
|
pendingToolCalls.delete(callId || "");
|
|
@@ -21,12 +21,12 @@ import {
|
|
|
21
21
|
getLanguageNameFromLocale,
|
|
22
22
|
getLanguageSettingsOptions,
|
|
23
23
|
t
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-F4SQY4RB.js";
|
|
25
25
|
import {
|
|
26
26
|
getHomeEnvFallbackVars,
|
|
27
27
|
loadEnvironment,
|
|
28
28
|
preResolveHomeEnvOverrides
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-OCEXSMWS.js";
|
|
30
30
|
import {
|
|
31
31
|
ENV_CORRUPTED_PATH,
|
|
32
32
|
ENV_WAS_RECOVERED
|
|
@@ -34,7 +34,7 @@ import {
|
|
|
34
34
|
import {
|
|
35
35
|
isWorkspaceTrusted,
|
|
36
36
|
updateSettingsFilePreservingFormat
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-ZFJBQATO.js";
|
|
38
38
|
import {
|
|
39
39
|
require_strip_json_comments
|
|
40
40
|
} from "./chunk-ALGGS7UH.js";
|
|
@@ -46,13 +46,13 @@ import {
|
|
|
46
46
|
DEFAULT_TOOL_RESULTS_TOTAL_CHARS_THRESHOLD,
|
|
47
47
|
DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES,
|
|
48
48
|
DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD
|
|
49
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-I3LJQR5I.js";
|
|
50
50
|
import {
|
|
51
51
|
stripRuntimeSnapshotPrefix
|
|
52
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-BEBG3YE6.js";
|
|
53
53
|
import {
|
|
54
54
|
DEFAULT_QWEN_CUSTOM_IGNORE_FILE_NAMES
|
|
55
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-EQL65XGA.js";
|
|
56
56
|
import {
|
|
57
57
|
DEFAULT_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH,
|
|
58
58
|
SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH_LIMIT
|
|
@@ -62,7 +62,7 @@ import {
|
|
|
62
62
|
Storage,
|
|
63
63
|
createDebugLogger,
|
|
64
64
|
getErrorMessage
|
|
65
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-OIVKILPI.js";
|
|
66
66
|
import {
|
|
67
67
|
init_esbuild_shims
|
|
68
68
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -2636,6 +2636,19 @@ var SETTINGS_SCHEMA = {
|
|
|
2636
2636
|
default: false,
|
|
2637
2637
|
description: "When true, HTTP hooks may target private/link-local IP ranges (the SSRF IP-range checks are skipped). Cloud metadata hostnames (e.g. 169.254.169.254, metadata.google.internal) remain blocked. Only honored from User, System, and SystemDefaults settings scopes; values set in Workspace settings are ignored so a cloned repository cannot self-grant this bypass. Enable only in trusted, managed environments, and pair with security.allowedHttpHookUrls.",
|
|
2638
2638
|
showInDialog: false
|
|
2639
|
+
},
|
|
2640
|
+
allowedInsecureVoiceBaseUrls: {
|
|
2641
|
+
type: "array",
|
|
2642
|
+
label: "Allowed Insecure Voice Base URLs",
|
|
2643
|
+
category: "Security",
|
|
2644
|
+
requiresRestart: false,
|
|
2645
|
+
default: [],
|
|
2646
|
+
description: "Complete voice base URLs that may use HTTP or private-network addresses. Entries must include an explicit http:// or https:// scheme and the full provider path; only URL serialization and trailing slashes are normalized. Wildcards are not supported; metadata, link-local, local-use NAT64, 6to4, and Teredo addresses remain blocked even when listed, as do hostnames that resolve to loopback; IPv4-mapped, IPv4-compatible, and well-known NAT64 (64:ff9b::/96) literals are classified by their embedded IPv4 address. Only honored from User, System, and SystemDefaults settings scopes; values set in Workspace settings are ignored. Enable only for trusted endpoints in managed private networks. Cleartext HTTP also exposes the provider API key transmitted in the Authorization header. An allowlisted hostname is only as trustworthy as its DNS; prefer IP-literal entries when the gateway address is stable.",
|
|
2647
|
+
showInDialog: false,
|
|
2648
|
+
items: {
|
|
2649
|
+
type: "string",
|
|
2650
|
+
description: "Complete voice provider base URL with explicit scheme and full path (no wildcards)"
|
|
2651
|
+
}
|
|
2639
2652
|
}
|
|
2640
2653
|
}
|
|
2641
2654
|
},
|
|
@@ -4695,6 +4708,11 @@ function getSettingsWarnings(loadedSettings) {
|
|
|
4695
4708
|
`Warning: security.allowPrivateNetworkHooks in workspace settings (${workspaceFile.path}) is ignored. This setting is only honored from User, System, or SystemDefaults scope settings.`
|
|
4696
4709
|
);
|
|
4697
4710
|
}
|
|
4711
|
+
if (workspaceFile.rawJson !== void 0 && workspaceFile.originalSettings.security?.allowedInsecureVoiceBaseUrls !== void 0) {
|
|
4712
|
+
warningSet.add(
|
|
4713
|
+
`Warning: security.allowedInsecureVoiceBaseUrls in workspace settings (${workspaceFile.path}) is ignored. This setting is only honored from User, System, or SystemDefaults scope settings.`
|
|
4714
|
+
);
|
|
4715
|
+
}
|
|
4698
4716
|
return [...warningSet];
|
|
4699
4717
|
}
|
|
4700
4718
|
__name(getSettingsWarnings, "getSettingsWarnings");
|
|
@@ -4710,19 +4728,20 @@ function tagMcpServerScope(settings, scope) {
|
|
|
4710
4728
|
return { ...settings, mcpServers: tagged };
|
|
4711
4729
|
}
|
|
4712
4730
|
__name(tagMcpServerScope, "tagMcpServerScope");
|
|
4713
|
-
function
|
|
4714
|
-
if (settings.security?.allowPrivateNetworkHooks === void 0) {
|
|
4731
|
+
function stripWorkspaceSecurityBypasses(settings) {
|
|
4732
|
+
if (settings.security?.allowPrivateNetworkHooks === void 0 && settings.security?.allowedInsecureVoiceBaseUrls === void 0) {
|
|
4715
4733
|
return settings;
|
|
4716
4734
|
}
|
|
4717
|
-
const {
|
|
4735
|
+
const {
|
|
4736
|
+
allowPrivateNetworkHooks: _privateHooks,
|
|
4737
|
+
allowedInsecureVoiceBaseUrls: _insecureVoice,
|
|
4738
|
+
...restSecurity
|
|
4739
|
+
} = settings.security;
|
|
4718
4740
|
return { ...settings, security: restSecurity };
|
|
4719
4741
|
}
|
|
4720
|
-
__name(
|
|
4742
|
+
__name(stripWorkspaceSecurityBypasses, "stripWorkspaceSecurityBypasses");
|
|
4721
4743
|
function mergeSettings(system, systemDefaults, user, workspace, isTrusted) {
|
|
4722
|
-
const safeWorkspace = isTrusted ? tagMcpServerScope(
|
|
4723
|
-
stripWorkspacePrivateNetworkHooks(workspace),
|
|
4724
|
-
"workspace"
|
|
4725
|
-
) : {};
|
|
4744
|
+
const safeWorkspace = isTrusted ? tagMcpServerScope(stripWorkspaceSecurityBypasses(workspace), "workspace") : {};
|
|
4726
4745
|
return customDeepMerge(
|
|
4727
4746
|
getMergeStrategyForPath,
|
|
4728
4747
|
{},
|
|
@@ -4789,17 +4808,29 @@ var LoadedSettings = class {
|
|
|
4789
4808
|
throw new Error(`Invalid scope: ${scope}`);
|
|
4790
4809
|
}
|
|
4791
4810
|
}
|
|
4792
|
-
setValue(scope, key, value, assertCanCommit) {
|
|
4811
|
+
setValue(scope, key, value, assertCanCommit, opts = {}) {
|
|
4793
4812
|
if (key === "model.name" && typeof value === "string") {
|
|
4794
4813
|
value = stripRuntimeSnapshotPrefix(value);
|
|
4795
4814
|
}
|
|
4796
4815
|
assertCanCommit?.();
|
|
4797
4816
|
const settingsFile = this.forScope(scope);
|
|
4817
|
+
const replacePath = key === "mcpServers" ? key.split(".") : [];
|
|
4818
|
+
if (opts.throwOnWriteFailure) {
|
|
4819
|
+
saveSettings(
|
|
4820
|
+
settingsFile,
|
|
4821
|
+
createSettingsUpdate(key, value),
|
|
4822
|
+
replacePath,
|
|
4823
|
+
{
|
|
4824
|
+
throwOnWriteFailure: true
|
|
4825
|
+
}
|
|
4826
|
+
);
|
|
4827
|
+
}
|
|
4798
4828
|
setNestedPropertySafe(settingsFile.settings, key, value);
|
|
4799
4829
|
setNestedPropertySafe(settingsFile.originalSettings, key, value);
|
|
4800
4830
|
this._merged = this.computeMergedSettings();
|
|
4801
|
-
|
|
4802
|
-
|
|
4831
|
+
if (!opts.throwOnWriteFailure) {
|
|
4832
|
+
saveSettings(settingsFile, createSettingsUpdate(key, value), replacePath);
|
|
4833
|
+
}
|
|
4803
4834
|
}
|
|
4804
4835
|
setValues(writes, onScopeCommitted, assertCanCommit) {
|
|
4805
4836
|
const scopes = /* @__PURE__ */ new Set();
|
|
@@ -563,7 +563,7 @@ var WorkspaceRegistrationStore = class {
|
|
|
563
563
|
return removed;
|
|
564
564
|
}
|
|
565
565
|
async update(mutate) {
|
|
566
|
-
const { atomicWriteFile } = await import("./deferred-core-runtime-
|
|
566
|
+
const { atomicWriteFile } = await import("./deferred-core-runtime-ONWSGDPN.js");
|
|
567
567
|
return withInProcessLock(this.filePath, async () => {
|
|
568
568
|
const lock = await acquireFileLock(this.filePath);
|
|
569
569
|
let committed = false;
|
|
@@ -8,13 +8,13 @@ import {
|
|
|
8
8
|
} from "./chunk-3Z43GZUQ.js";
|
|
9
9
|
import {
|
|
10
10
|
t
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-F4SQY4RB.js";
|
|
12
12
|
import {
|
|
13
13
|
So
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-I3LJQR5I.js";
|
|
15
15
|
import {
|
|
16
16
|
createDebugLogger
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-OIVKILPI.js";
|
|
18
18
|
import {
|
|
19
19
|
init_esbuild_shims
|
|
20
20
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -6,10 +6,10 @@ import {
|
|
|
6
6
|
extractGeminiContent,
|
|
7
7
|
extractOpenAiContent,
|
|
8
8
|
stringifyGenAiJson
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-EI3HZX6C.js";
|
|
10
10
|
import {
|
|
11
11
|
createDebugLogger
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-OIVKILPI.js";
|
|
13
13
|
import {
|
|
14
14
|
ROOT_CONTEXT,
|
|
15
15
|
context,
|
|
@@ -64,7 +64,7 @@ async function runExitCleanup(options = {}) {
|
|
|
64
64
|
}
|
|
65
65
|
__name(runExitCleanup, "runExitCleanup");
|
|
66
66
|
async function cleanupCheckpoints() {
|
|
67
|
-
const { Storage } = await import("./deferred-core-runtime-
|
|
67
|
+
const { Storage } = await import("./deferred-core-runtime-ONWSGDPN.js");
|
|
68
68
|
const storage = new Storage(process.cwd());
|
|
69
69
|
const tempDir = storage.getProjectTempDir();
|
|
70
70
|
const checkpointsDir = join(tempDir, "checkpoints");
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
isGitRepository
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-I3LJQR5I.js";
|
|
6
6
|
import {
|
|
7
7
|
createDebugLogger
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-OIVKILPI.js";
|
|
9
9
|
import {
|
|
10
10
|
init_esbuild_shims
|
|
11
11
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
formatHistoryGapNotice
|
|
5
|
+
} from "./chunk-TPQ6RO65.js";
|
|
3
6
|
import {
|
|
4
7
|
sanitizeTerminalText
|
|
5
8
|
} from "./chunk-4NFY2S7N.js";
|
|
6
|
-
import {
|
|
7
|
-
formatHistoryGapNotice
|
|
8
|
-
} from "./chunk-RFUHDCNF.js";
|
|
9
9
|
import {
|
|
10
10
|
isGoalStatusKind,
|
|
11
11
|
isTerminalGoalStatusKind
|
|
@@ -19,18 +19,18 @@ import {
|
|
|
19
19
|
setGoalTerminalObserver,
|
|
20
20
|
setLastGoalTerminal,
|
|
21
21
|
unregisterGoalHook
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-I3LJQR5I.js";
|
|
23
23
|
import {
|
|
24
24
|
apiActivityTracker,
|
|
25
25
|
formatVisionBridgeNoticeDisplay,
|
|
26
26
|
isVisionBridgeNoticeDisplay
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-FTJUO7R2.js";
|
|
28
28
|
import {
|
|
29
29
|
ToolNames
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-IC4Z6LX6.js";
|
|
31
31
|
import {
|
|
32
32
|
createDebugLogger
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-OIVKILPI.js";
|
|
34
34
|
import {
|
|
35
35
|
writeStderrLine,
|
|
36
36
|
writeStderrLineSafe
|
|
@@ -2869,7 +2869,7 @@ async function extractMetadata(conversation, config) {
|
|
|
2869
2869
|
const gitBranch = firstRecord?.gitBranch;
|
|
2870
2870
|
let gitRepo;
|
|
2871
2871
|
if (cwd) {
|
|
2872
|
-
const { getGitRepoName } = await import("./deferred-core-runtime-
|
|
2872
|
+
const { getGitRepoName } = await import("./deferred-core-runtime-ONWSGDPN.js");
|
|
2873
2873
|
gitRepo = getGitRepoName(cwd);
|
|
2874
2874
|
}
|
|
2875
2875
|
let model;
|
|
@@ -5,12 +5,12 @@ import {
|
|
|
5
5
|
} from "./chunk-4NFY2S7N.js";
|
|
6
6
|
import {
|
|
7
7
|
t
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-F4SQY4RB.js";
|
|
9
9
|
import {
|
|
10
10
|
fetchGitDiff,
|
|
11
11
|
findProviderByCredentials,
|
|
12
12
|
resolveMetadataKey
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-I3LJQR5I.js";
|
|
14
14
|
import {
|
|
15
15
|
init_esbuild_shims
|
|
16
16
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
getTasksDir
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-7MH4J33A.js";
|
|
6
6
|
import {
|
|
7
7
|
require_proper_lockfile
|
|
8
8
|
} from "./chunk-KRXPRVGL.js";
|
|
@@ -11,11 +11,11 @@ import {
|
|
|
11
11
|
} from "./chunk-VGC4I5JJ.js";
|
|
12
12
|
import {
|
|
13
13
|
atomicWriteJSON
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-FOGU3LJX.js";
|
|
15
15
|
import {
|
|
16
16
|
createDebugLogger,
|
|
17
17
|
isNodeError
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-OIVKILPI.js";
|
|
19
19
|
import {
|
|
20
20
|
init_esbuild_shims
|
|
21
21
|
} from "./chunk-5O2XNYP6.js";
|