@zubriq/code 0.19.8-1 → 0.19.9-1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundled/qc-helper/docs/features/channels/_meta.ts +1 -0
- package/dist/bundled/qc-helper/docs/features/channels/overview.md +23 -12
- package/dist/bundled/qc-helper/docs/features/channels/plugins.md +1 -0
- package/dist/bundled/qc-helper/docs/features/channels/wecom.md +111 -0
- package/dist/bundled/qc-helper/docs/features/hooks.md +36 -34
- package/dist/bundled/qc-helper/docs/features/memory.md +1 -1
- package/dist/bundled/qc-helper/docs/qwen-serve.md +17 -10
- package/dist/bundled/review/SKILL.md +6 -2
- package/dist/chunks/{MaxSizedBox-OWTCJQNO.js → MaxSizedBox-W6SAJMJC.js} +13 -11
- package/dist/chunks/{StandaloneSessionPicker-6NGEQFBH.js → StandaloneSessionPicker-YBKZZKIA.js} +28 -23
- package/dist/chunks/{acpAgent-XPRWSNOW.js → acpAgent-SQJQBOTS.js} +110 -80
- package/dist/chunks/{agent-TB6S4VXU.js → agent-QU7Q2RZN.js} +8 -8
- package/dist/chunks/{agent-headless-R3XYK5TT.js → agent-headless-PBHLWHND.js} +8 -8
- package/dist/chunks/{anthropicContentGenerator-FZQAEMYK.js → anthropicContentGenerator-52G6ZA3D.js} +31 -4
- package/dist/chunks/{artifact-tool-H2TNPNP5.js → artifact-tool-D233YJFH.js} +25 -6
- package/dist/chunks/{bridge-HVRG6SMU.js → bridge-LJLLDUMW.js} +17 -14
- package/dist/chunks/{ca-HCMB2I54.js → ca-MKD32FQL.js} +26 -1
- package/dist/chunks/{channel-worker-supervisor-B7MSMB5K.js → channel-worker-supervisor-NZQUOEFJ.js} +3 -3
- package/dist/chunks/{chunk-YRM6BC6H.js → chunk-27AYMAL6.js} +506 -63
- package/dist/chunks/{chunk-536GZ6UF.js → chunk-2MDC5WDB.js} +17 -111
- package/dist/chunks/{chunk-H3D6XAOL.js → chunk-2PRSBVPI.js} +3 -3
- package/dist/chunks/chunk-332PWN27.js +19 -0
- package/dist/chunks/{chunk-FVMWEHWU.js → chunk-3B26UVCX.js} +114 -12
- package/dist/chunks/{chunk-ZM5BPDXV.js → chunk-3F22JT4E.js} +1 -1
- package/dist/chunks/{chunk-W6RH6KHR.js → chunk-3GPVYALM.js} +4 -2
- package/dist/chunks/{chunk-G7ZG7CA6.js → chunk-3UP777ZS.js} +8 -7
- package/dist/chunks/{chunk-PA7QS4X5.js → chunk-43W4YSO6.js} +1 -12
- package/dist/chunks/{chunk-5EB2HK3X.js → chunk-4IK56VLC.js} +1 -1
- package/dist/chunks/{chunk-UE5TCZE6.js → chunk-5FAUIGXH.js} +5 -13
- package/dist/chunks/{chunk-VEB3NYSO.js → chunk-5MBO76SL.js} +5 -0
- package/dist/chunks/{chunk-PDITONOB.js → chunk-5MRUKUOG.js} +5347 -4132
- package/dist/chunks/{chunk-4UC3U66K.js → chunk-6EUMFVPJ.js} +5 -5
- package/dist/chunks/{chunk-YOGGIAGF.js → chunk-6JL5OVLX.js} +1 -1
- package/dist/chunks/{chunk-QG4ZO2EB.js → chunk-74E6VVF6.js} +11 -11
- package/dist/chunks/chunk-A2X3KLC3.js +3807 -0
- package/dist/chunks/{chunk-BA4HLTG2.js → chunk-B6B2MUUF.js} +5 -5
- package/dist/chunks/{chunk-XKYOIERV.js → chunk-BN5VYAOZ.js} +681 -1239
- package/dist/chunks/{chunk-IO76BGJ3.js → chunk-BYUA6YYS.js} +15 -9
- package/dist/chunks/{chunk-NCFY7PWS.js → chunk-CCGOFQV3.js} +51 -2
- package/dist/chunks/{chunk-66KNL43D.js → chunk-CD6USWHZ.js} +1 -1
- package/dist/chunks/{chunk-ZWSTIPSW.js → chunk-CEITMQ62.js} +2 -2
- package/dist/chunks/{chunk-7AQTBTVY.js → chunk-EJP6Z7NU.js} +4 -3
- package/dist/chunks/{chunk-RTW5ZXHO.js → chunk-EZTNYRHH.js} +6 -5
- package/dist/chunks/{chunk-MJQFA66Z.js → chunk-FAATDXYS.js} +308 -81
- package/dist/chunks/{chunk-DNV4FSN5.js → chunk-FBET5XZ2.js} +6 -4
- package/dist/chunks/{chunk-HTC4R67V.js → chunk-FES4YXJ3.js} +9 -9
- package/dist/chunks/{chunk-NBKE6QRZ.js → chunk-FHTUTVIQ.js} +10 -5
- package/dist/chunks/chunk-FII3C4E7.js +168 -0
- package/dist/chunks/{chunk-2NL7ED5Q.js → chunk-FV7425LN.js} +22 -1
- package/dist/chunks/{chunk-J6OET6C3.js → chunk-GAI76CFX.js} +4 -4
- package/dist/chunks/{chunk-B34OV7K2.js → chunk-GGQQA4JW.js} +13 -0
- package/dist/chunks/chunk-GLE2YUPU.js +34 -0
- package/dist/chunks/{chunk-X265R5C6.js → chunk-GN3F6PIU.js} +1 -1
- package/dist/chunks/{chunk-SM624MOZ.js → chunk-GWUN54UD.js} +1 -1
- package/dist/chunks/chunk-H3TELH3H.js +942 -0
- package/dist/chunks/{chunk-XZULYFIX.js → chunk-HD4DZI2L.js} +2 -2
- package/dist/chunks/{chunk-KLLLWQM2.js → chunk-HPQIVXSP.js} +1 -1
- package/dist/chunks/{chunk-WSVZFWN4.js → chunk-IBY3Q3HG.js} +693 -104
- package/dist/chunks/{chunk-JSEOX4CM.js → chunk-JGR6W4IX.js} +14 -8
- package/dist/chunks/chunk-K652V4NH.js +283 -0
- package/dist/chunks/{chunk-OCBJKHF2.js → chunk-KH2CZZDD.js} +2 -2
- package/dist/chunks/chunk-LGFAYIKX.js +115 -0
- package/dist/chunks/{chunk-QG5KDB6X.js → chunk-LZDW5TDV.js} +5 -5
- package/dist/chunks/{chunk-ENKWIF75.js → chunk-MA4AZNP7.js} +10 -10
- package/dist/chunks/{chunk-4RQIB5UZ.js → chunk-O2YT7VB4.js} +0 -34
- package/dist/chunks/{chunk-4KJ2BPIT.js → chunk-OACJLMLD.js} +2 -38
- package/dist/chunks/{chunk-ML2ZWH2K.js → chunk-PCWYMX57.js} +14 -153
- package/dist/chunks/{chunk-NHFBLJOI.js → chunk-Q3PQ5VGJ.js} +1 -1
- package/dist/chunks/{chunk-LGXBB2R2.js → chunk-QK3I36QG.js} +1 -1
- package/dist/chunks/chunk-RA7TR75G.js +8223 -0
- package/dist/chunks/{chunk-KSPVDFE4.js → chunk-SAIILPQ3.js} +0 -3
- package/dist/chunks/{chunk-DHKDK57Q.js → chunk-SNZPA74J.js} +146 -54
- package/dist/chunks/{chunk-PWR5MVM3.js → chunk-SSP3UT5C.js} +4 -4
- package/dist/chunks/{chunk-4LETJLG2.js → chunk-SUCRVT5L.js} +1 -1
- package/dist/chunks/{chunk-5YLZHETW.js → chunk-TRR5KGDN.js} +1 -1
- package/dist/chunks/chunk-UIDXQNMV.js +13 -0
- package/dist/chunks/{chunk-PIORL4OD.js → chunk-UKV3D7WB.js} +0 -44
- package/dist/chunks/chunk-UYNUIGUR.js +167 -0
- package/dist/chunks/chunk-V2TYBEWU.js +28 -0
- package/dist/chunks/chunk-V35MD7KN.js +13 -0
- package/dist/chunks/{chunk-N4HTVZDZ.js → chunk-VR3KCBHH.js} +1 -1
- package/dist/chunks/{chunk-APYUOROB.js → chunk-W4CTWW7M.js} +423 -61
- package/dist/chunks/{chunk-ABANKQYY.js → chunk-WJAW2O5H.js} +92 -465
- package/dist/chunks/{chunk-6RSBRKF5.js → chunk-WN4YJJGH.js} +2 -2
- package/dist/chunks/chunk-XNXVCNAT.js +88 -0
- package/dist/chunks/{chunk-TDGF35EN.js → chunk-XOHNA2S6.js} +1 -1
- package/dist/chunks/chunk-XQPMKWSV.js +487 -0
- package/dist/chunks/{chunk-4FQL7KUS.js → chunk-XWDHZP7P.js} +8 -8
- package/dist/chunks/{chunk-REPRY4F7.js → chunk-YCKKP4QA.js} +10 -10
- package/dist/chunks/{chunk-YNWQ3PUQ.js → chunk-YJWMOGGZ.js} +3 -3
- package/dist/chunks/{chunk-RFIL6REB.js → chunk-YKZIAK7C.js} +119 -29
- package/dist/chunks/{chunk-45YCXM2H.js → chunk-YZDBUH6S.js} +45 -9
- package/dist/chunks/chunk-Z3I3QJK3.js +47 -0
- package/dist/chunks/{chunk-G23FFNLT.js → chunk-ZDGPPCTW.js} +20 -8
- package/dist/chunks/chunk-ZL5HN75Q.js +61 -0
- package/dist/chunks/{chunk-IQX5S2RS.js → chunk-ZL7JCYWM.js} +66 -7
- package/dist/chunks/{computer-use-A72BECH4.js → computer-use-4B45EG2F.js} +8 -8
- package/dist/chunks/{contextCommand-RREXA4B7.js → contextCommand-GIVRWNTS.js} +12 -11
- package/dist/chunks/{cron-create-DDYU4DIR.js → cron-create-JSXEIPVS.js} +1 -1
- package/dist/chunks/{cron-delete-DFKOUZWN.js → cron-delete-OIFVEPGU.js} +1 -1
- package/dist/chunks/{cron-list-ME5QGAR5.js → cron-list-D4ZX4IOE.js} +1 -1
- package/dist/chunks/{daemon-XWG2EGFX.js → daemon-WPAENEBW.js} +71 -3
- package/dist/chunks/{daemon-status-provider-Y6AFXTET.js → daemon-status-provider-WBOAMCHE.js} +20 -17
- package/dist/chunks/{de-PLLFDERI.js → de-ZFPPQVSF.js} +26 -1
- package/dist/chunks/{dist-LPVU3L2M.js → dist-BEXOZXLQ.js} +6 -3792
- package/dist/chunks/{dist-7GU63KI5.js → dist-E6UANPIM.js} +1 -1
- package/dist/chunks/{dist-VHBP2PIG.js → dist-H2AEJCZ5.js} +2 -2
- package/dist/chunks/{dist-3UDX5T4T.js → dist-O2IRTRPP.js} +1 -1
- package/dist/chunks/dist-SCFLLYMK.js +3217 -0
- package/dist/chunks/{dist-H4HHZYCI.js → dist-Z34QPAQW.js} +2 -2
- package/dist/chunks/{earlyInputCapture-OAHBOGOO.js → earlyInputCapture-JWMCAJZR.js} +8 -8
- package/dist/chunks/{edit-SFYW3FOV.js → edit-O5FUVHBE.js} +9 -9
- package/dist/chunks/{en-AXARKOWO.js → en-N4EPZAQI.js} +31 -2
- package/dist/chunks/{enter-worktree-LUPPQ2NH.js → enter-worktree-LOJFRC3D.js} +8 -8
- package/dist/chunks/{enterPlanMode-44GEN5U6.js → enterPlanMode-VS3FAUPX.js} +8 -8
- package/dist/chunks/environment-WKW5TLSH.js +90 -0
- package/dist/chunks/{errors-H3Q3W3DL.js → errors-LEZXHJMR.js} +10 -10
- package/dist/chunks/{exit-worktree-34CVVWT4.js → exit-worktree-RN2NXRMP.js} +8 -8
- package/dist/chunks/{exitPlanMode-5G5BHNUP.js → exitPlanMode-EPC424I4.js} +8 -8
- package/dist/chunks/{fast-path-7PKGFBRM.js → fast-path-UUPAFOSQ.js} +12 -3
- package/dist/chunks/{fast-path-settings-RCRXH2JG.js → fast-path-settings-7RIFI3PK.js} +3 -2
- package/dist/chunks/{fr-MBMNQSQ6.js → fr-5WWMY53B.js} +30 -1
- package/dist/chunks/{gemini-2II6JH4H.js → gemini-QCKK4XNU.js} +438 -265
- package/dist/chunks/{geminiContentGenerator-SWEJVOC4.js → geminiContentGenerator-DX4SRXJA.js} +1 -1
- package/dist/chunks/{glob-5DFC7DXW.js → glob-4URMJWRX.js} +8 -8
- package/dist/chunks/{grep-QYVXGRRJ.js → grep-AEQB5KED.js} +8 -8
- package/dist/chunks/handleAutoUpdate-Y4YNG34Y.js +65 -0
- package/dist/chunks/{initializer-XX3UGUHE.js → initializer-NDEBMSOG.js} +17 -13
- package/dist/chunks/{ja-HFV5QCHR.js → ja-CUHZOLEJ.js} +30 -1
- package/dist/chunks/{list-AX5FWBVC.js → list-VSCBNOWT.js} +17 -15
- package/dist/chunks/{loadedSettingsAdapter-ISOM6GJ7.js → loadedSettingsAdapter-FDO752BA.js} +15 -13
- package/dist/chunks/{loop-wakeup-ZW5P6VPY.js → loop-wakeup-OHWEMFP5.js} +2 -2
- package/dist/chunks/{ls-L654WOAT.js → ls-7MFU2QYW.js} +1 -1
- package/dist/chunks/{lsp-M35KE54Y.js → lsp-XHDTPTGV.js} +2 -4
- package/dist/chunks/{mcp-74F6725E.js → mcp-MLPWTHUV.js} +15 -13
- package/dist/chunks/{monitor-W4WRSC2C.js → monitor-WCVHIJUJ.js} +16 -11
- package/dist/chunks/{nonInteractiveCli-4QMV6C4J.js → nonInteractiveCli-32HZK274.js} +52 -44
- package/dist/chunks/{notebook-edit-XBZEIP42.js → notebook-edit-NPOMPKS4.js} +9 -9
- package/dist/chunks/{openaiContentGenerator-RTUJDESE.js → openaiContentGenerator-6AIBSRQK.js} +6 -6
- package/dist/chunks/{pidfile-YWSGNTPK.js → pidfile-7Y3QEDSZ.js} +8 -8
- package/dist/chunks/{pt-2THT3YHA.js → pt-OLYN42DS.js} +26 -1
- package/dist/chunks/{qwenContentGenerator-4ZFYAZLY.js → qwenContentGenerator-OUYOAYT4.js} +10 -10
- package/dist/chunks/{read-file-D7DKDIAC.js → read-file-EESFA24L.js} +3 -3
- package/dist/chunks/{record-artifact-PP3LKHTS.js → record-artifact-SQ2OKRJW.js} +3 -3
- package/dist/chunks/{ripGrep-KG7JYNER.js → ripGrep-DLYV7ZZG.js} +8 -8
- package/dist/chunks/{ru-PER5I4OI.js → ru-MKM2HFDS.js} +26 -1
- package/dist/chunks/{run-qwen-serve-XGJSNF6S.js → run-qwen-serve-WUEHQROF.js} +602 -143
- package/dist/chunks/{scheduler-MOLWOE4G.js → scheduler-SK4Y66V4.js} +8 -8
- package/dist/chunks/{send-message-OA6MV4EU.js → send-message-76GT3JMC.js} +1 -1
- package/dist/chunks/{serve-4ZNVPYND.js → serve-UCDGVZFI.js} +17 -14
- package/dist/chunks/{server-ACWDFHIF.js → server-FVGFFVZ4.js} +1394 -328
- package/dist/chunks/{session-VYO2GRO2.js → session-RIGKDMGR.js} +53 -45
- package/dist/chunks/{settings-4J2O3K22.js → settings-LVFFGXGE.js} +24 -20
- package/dist/chunks/{shell-RKERJYXR.js → shell-PAWNAFYN.js} +8 -8
- package/dist/chunks/{skill-JYACZJ5V.js → skill-5YIN3Z6Y.js} +15 -5
- package/dist/chunks/{spawnChannel-BA3U3RGX.js → spawnChannel-KIMZHWNR.js} +10 -10
- package/dist/chunks/{src-3P337V4P.js → src-BIWCD3VX.js} +21 -9
- package/dist/chunks/{startInteractiveUI-SUSZ6FWB.js → startInteractiveUI-AFXLGUFI.js} +33759 -41620
- package/dist/chunks/{task-create-RPFZNB4B.js → task-create-WCHTB435.js} +2 -2
- package/dist/chunks/{task-update-5WUG5MVQ.js → task-update-XYWMHJGJ.js} +2 -2
- package/dist/chunks/{team-create-YVWGRZEA.js → team-create-26WOMISV.js} +8 -8
- package/dist/chunks/{team-plan-approval-VRF54TTI.js → team-plan-approval-B5XB6UQC.js} +8 -8
- package/dist/chunks/{theme-manager-JW2KOACL.js → theme-manager-4TJ5TEFD.js} +8 -8
- package/dist/chunks/{tool-search-KUSMAZBN.js → tool-search-FFU63E6M.js} +6 -23
- package/dist/chunks/total-session-admission-JOD7SMPJ.js +72 -0
- package/dist/chunks/{trustedFolders-ERGSUCDK.js → trustedFolders-IJ2QHXSC.js} +9 -9
- package/dist/chunks/updateCheck-5Z25DCBP.js +65 -0
- package/dist/chunks/{validateNonInterActiveAuth-DDI62H5X.js → validateNonInterActiveAuth-G5EY47DE.js} +49 -41
- package/dist/chunks/{version-VB3AHVUF.js → version-LGO3GOKQ.js} +2 -1
- package/dist/chunks/{workflow-WINKRCI4.js → workflow-ZTK3WT3D.js} +9 -9
- package/dist/chunks/{workspace-providers-status-ZVZPXKSO.js → workspace-providers-status-YMPTRKW2.js} +18 -15
- package/dist/chunks/workspace-registry-NBUL6LBH.js +74 -0
- package/dist/chunks/{workspace-service-GAS2LV2P.js → workspace-service-V6G2RCD4.js} +21 -19
- package/dist/chunks/{workspace-skills-status-4WGKYJVA.js → workspace-skills-status-ZCW44BCH.js} +16 -14
- package/dist/chunks/{write-file-UTLKVZNN.js → write-file-4FUTAEW6.js} +9 -9
- package/dist/chunks/{zh-RS3HZHFH.js → zh-J4F6QWQV.js} +31 -2
- package/dist/chunks/{zh-TW-L5GRQ4S4.js → zh-TW-XVDWOLSW.js} +31 -2
- package/dist/cli.js +11 -11
- package/dist/locales/ca.js +30 -0
- package/dist/locales/de.js +30 -0
- package/dist/locales/en.js +38 -2
- package/dist/locales/fr.js +36 -0
- package/dist/locales/ja.js +36 -0
- package/dist/locales/pt.js +30 -0
- package/dist/locales/ru.js +30 -0
- package/dist/locales/zh-TW.js +38 -2
- package/dist/locales/zh.js +38 -2
- package/dist/package.json +3 -3
- package/dist/web-shell/assets/{arc-C6tzvtOa.js → arc-BWyoJpY2.js} +1 -1
- package/dist/web-shell/assets/{architectureDiagram-3BPJPVTR-DSYQFGn9.js → architectureDiagram-3BPJPVTR-BT0mGrz2.js} +1 -1
- package/dist/web-shell/assets/{blockDiagram-GPEHLZMM-CHjBdXAD.js → blockDiagram-GPEHLZMM-BLgUWvyf.js} +1 -1
- package/dist/web-shell/assets/{c4Diagram-AAUBKEIU-BQzK6Yyb.js → c4Diagram-AAUBKEIU-DYx9M7oU.js} +1 -1
- package/dist/web-shell/assets/channel-wmPUGHtg.js +1 -0
- package/dist/web-shell/assets/{chunk-2J33WTMH-hpP2p3Ij.js → chunk-2J33WTMH-CfMHWbuZ.js} +1 -1
- package/dist/web-shell/assets/{chunk-4BX2VUAB-B5KtK1JJ.js → chunk-4BX2VUAB-B1URoqEV.js} +1 -1
- package/dist/web-shell/assets/{chunk-55IACEB6-BDv6Mfr2.js → chunk-55IACEB6-DAIaM4QF.js} +1 -1
- package/dist/web-shell/assets/{chunk-727SXJPM-BevPWfrX.js → chunk-727SXJPM-B2X34knw.js} +1 -1
- package/dist/web-shell/assets/{chunk-AQP2D5EJ-ChDrz2ad.js → chunk-AQP2D5EJ-Cif-zLTQ.js} +1 -1
- package/dist/web-shell/assets/{chunk-FMBD7UC4-ClMdVSDs.js → chunk-FMBD7UC4-H18WCXdY.js} +1 -1
- package/dist/web-shell/assets/{chunk-ND2GUHAM-BceV8kZS.js → chunk-ND2GUHAM-YFtetHi0.js} +1 -1
- package/dist/web-shell/assets/{chunk-QZHKN3VN-DtyK2wwc.js → chunk-QZHKN3VN-By2hiH3r.js} +1 -1
- package/dist/web-shell/assets/classDiagram-4FO5ZUOK-BA2ljEjW.js +1 -0
- package/dist/web-shell/assets/classDiagram-v2-Q7XG4LA2-BA2ljEjW.js +1 -0
- package/dist/web-shell/assets/{cose-bilkent-S5V4N54A-BGMsqwmE.js → cose-bilkent-S5V4N54A-VrcnnLZu.js} +1 -1
- package/dist/web-shell/assets/{dagre-BM42HDAG-C-71clpF.js → dagre-BM42HDAG-CGo-IaVV.js} +1 -1
- package/dist/web-shell/assets/{diagram-2AECGRRQ-WIzzlkec.js → diagram-2AECGRRQ-Dl4QjzIB.js} +1 -1
- package/dist/web-shell/assets/{diagram-5GNKFQAL-CtnhZUP1.js → diagram-5GNKFQAL-qMLmsO0u.js} +1 -1
- package/dist/web-shell/assets/{diagram-KO2AKTUF-CS_IUezp.js → diagram-KO2AKTUF-CHlmuxPI.js} +1 -1
- package/dist/web-shell/assets/{diagram-LMA3HP47-BQnGRwN9.js → diagram-LMA3HP47-BUwU3GwT.js} +1 -1
- package/dist/web-shell/assets/{diagram-OG6HWLK6-By2VIocq.js → diagram-OG6HWLK6-HEhwPDUM.js} +1 -1
- package/dist/web-shell/assets/{erDiagram-TEJ5UH35-Dy8WeNkr.js → erDiagram-TEJ5UH35-1n0llBmM.js} +1 -1
- package/dist/web-shell/assets/{flowDiagram-I6XJVG4X-Diu_4y0w.js → flowDiagram-I6XJVG4X-BN74uMnt.js} +1 -1
- package/dist/web-shell/assets/{ganttDiagram-6RSMTGT7-CH8euujP.js → ganttDiagram-6RSMTGT7-BoOq78i3.js} +1 -1
- package/dist/web-shell/assets/{gitGraphDiagram-PVQCEYII-DHiObZq1.js → gitGraphDiagram-PVQCEYII-CN8b00c8.js} +1 -1
- package/dist/web-shell/assets/index-CNwoO1Cn.js +783 -0
- package/dist/web-shell/assets/index-CWQ0z6kZ.css +5 -0
- package/dist/web-shell/assets/{infoDiagram-5YYISTIA-CvC9A6fh.js → infoDiagram-5YYISTIA-CCurnIna.js} +1 -1
- package/dist/web-shell/assets/{ishikawaDiagram-YF4QCWOH-BK46kC4E.js → ishikawaDiagram-YF4QCWOH-AwuRqdUP.js} +1 -1
- package/dist/web-shell/assets/{journeyDiagram-JHISSGLW-B2TIiKq4.js → journeyDiagram-JHISSGLW-B7IICk-E.js} +1 -1
- package/dist/web-shell/assets/{kanban-definition-UN3LZRKU-Bh0WAulO.js → kanban-definition-UN3LZRKU-BYF0OKhx.js} +1 -1
- package/dist/web-shell/assets/{linear-Bxe9SHMk.js → linear-GWWguGfD.js} +1 -1
- package/dist/web-shell/assets/{mermaid.core-B1Pv6D5B.js → mermaid.core-JqtkxvCl.js} +5 -5
- package/dist/web-shell/assets/{mindmap-definition-RKZ34NQL-Bz0joLH8.js → mindmap-definition-RKZ34NQL-B0MmHsZ6.js} +1 -1
- package/dist/web-shell/assets/{pieDiagram-4H26LBE5-CnN4x-VS.js → pieDiagram-4H26LBE5-DhImUZLQ.js} +1 -1
- package/dist/web-shell/assets/{quadrantDiagram-W4KKPZXB-BYWD4xO4.js → quadrantDiagram-W4KKPZXB-DGeSC3DT.js} +1 -1
- package/dist/web-shell/assets/{requirementDiagram-4Y6WPE33-B4MEhI9h.js → requirementDiagram-4Y6WPE33-DkspY6Re.js} +1 -1
- package/dist/web-shell/assets/{sankeyDiagram-5OEKKPKP-Dk_FgKLp.js → sankeyDiagram-5OEKKPKP-CaOofS2x.js} +1 -1
- package/dist/web-shell/assets/{sequenceDiagram-3UESZ5HK-B4ksiBZQ.js → sequenceDiagram-3UESZ5HK-DFQ_kFnN.js} +1 -1
- package/dist/web-shell/assets/{stateDiagram-AJRCARHV-CYf0xSPl.js → stateDiagram-AJRCARHV-D3snw0Tz.js} +1 -1
- package/dist/web-shell/assets/stateDiagram-v2-BHNVJYJU-BbSm_9d0.js +1 -0
- package/dist/web-shell/assets/{timeline-definition-PNZ67QCA-0CXeWHNY.js → timeline-definition-PNZ67QCA-l4zH8nLM.js} +1 -1
- package/dist/web-shell/assets/{vennDiagram-CIIHVFJN-DHoYY9v2.js → vennDiagram-CIIHVFJN-BnRlA98M.js} +1 -1
- package/dist/web-shell/assets/{wardley-L42UT6IY-D_65qshr.js → wardley-L42UT6IY-BS0xUdmd.js} +1 -1
- package/dist/web-shell/assets/{wardleyDiagram-YWT4CUSO-Cv90x1sd.js → wardleyDiagram-YWT4CUSO-DKGBUWyQ.js} +1 -1
- package/dist/web-shell/assets/{xychartDiagram-2RQKCTM6-5FQCYJyh.js → xychartDiagram-2RQKCTM6-DVb2HuOB.js} +1 -1
- package/dist/web-shell/index.html +2 -2
- package/package.json +3 -2
- package/dist/web-shell/assets/channel-V-ZaJrA6.js +0 -1
- package/dist/web-shell/assets/classDiagram-4FO5ZUOK-s-H0snGT.js +0 -1
- package/dist/web-shell/assets/classDiagram-v2-Q7XG4LA2-s-H0snGT.js +0 -1
- package/dist/web-shell/assets/index-DW75jq0K.css +0 -5
- package/dist/web-shell/assets/index-tiCo0xbZ.js +0 -779
- package/dist/web-shell/assets/stateDiagram-v2-BHNVJYJU-CMtrFRUb.js +0 -1
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
import {
|
|
7
7
|
JsonFormatter,
|
|
8
8
|
parseAndFormatApiError
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-5MRUKUOG.js";
|
|
10
10
|
import {
|
|
11
11
|
FatalBudgetExceededError,
|
|
12
12
|
FatalCancellationError,
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
} from "./chunk-22MNNNXE.js";
|
|
16
16
|
import {
|
|
17
17
|
runExitCleanup
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-6JL5OVLX.js";
|
|
19
19
|
import {
|
|
20
20
|
init_esbuild_shims
|
|
21
21
|
} from "./chunk-A4BMJM77.js";
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
// Force strict mode and setup for ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
SessionNotFoundError
|
|
5
|
+
} from "./chunk-GGQQA4JW.js";
|
|
6
|
+
import {
|
|
7
|
+
init_esbuild_shims
|
|
8
|
+
} from "./chunk-A4BMJM77.js";
|
|
9
|
+
import {
|
|
10
|
+
__name
|
|
11
|
+
} from "./chunk-J2S4EL5Y.js";
|
|
12
|
+
|
|
13
|
+
// packages/cli/src/serve/workspace-registry.ts
|
|
14
|
+
init_esbuild_shims();
|
|
15
|
+
function createWorkspaceRegistry(inputRuntimes) {
|
|
16
|
+
if (inputRuntimes.length === 0) {
|
|
17
|
+
throw new Error(
|
|
18
|
+
"WorkspaceRegistry requires at least one workspace runtime."
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
const primaryRuntimes = inputRuntimes.filter((runtime) => runtime.primary);
|
|
22
|
+
if (primaryRuntimes.length !== 1) {
|
|
23
|
+
throw new Error(
|
|
24
|
+
"WorkspaceRegistry requires exactly one primary workspace runtime."
|
|
25
|
+
);
|
|
26
|
+
}
|
|
27
|
+
const byCwd = /* @__PURE__ */ new Map();
|
|
28
|
+
const byId = /* @__PURE__ */ new Map();
|
|
29
|
+
for (const runtime of inputRuntimes) {
|
|
30
|
+
if (byCwd.has(runtime.workspaceCwd)) {
|
|
31
|
+
throw new Error(
|
|
32
|
+
`Duplicate workspace runtime cwd ${JSON.stringify(
|
|
33
|
+
runtime.workspaceCwd
|
|
34
|
+
)}.`
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
byCwd.set(runtime.workspaceCwd, runtime);
|
|
38
|
+
if (byId.has(runtime.workspaceId)) {
|
|
39
|
+
throw new Error(
|
|
40
|
+
`Duplicate workspace runtime id ${JSON.stringify(
|
|
41
|
+
runtime.workspaceId
|
|
42
|
+
)}.`
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
byId.set(runtime.workspaceId, runtime);
|
|
46
|
+
}
|
|
47
|
+
const runtimes = Object.freeze([...inputRuntimes]);
|
|
48
|
+
const primary = primaryRuntimes[0];
|
|
49
|
+
return {
|
|
50
|
+
primary,
|
|
51
|
+
list: /* @__PURE__ */ __name(() => runtimes, "list"),
|
|
52
|
+
getByWorkspaceCwd: /* @__PURE__ */ __name((workspaceCwd) => byCwd.get(workspaceCwd), "getByWorkspaceCwd"),
|
|
53
|
+
getByWorkspaceId: /* @__PURE__ */ __name((workspaceId) => byId.get(workspaceId), "getByWorkspaceId"),
|
|
54
|
+
resolveWorkspaceCwd: /* @__PURE__ */ __name((workspaceCwd) => workspaceCwd === void 0 ? primary : byCwd.get(workspaceCwd), "resolveWorkspaceCwd"),
|
|
55
|
+
resolveLiveSessionOwner: /* @__PURE__ */ __name((sessionId) => {
|
|
56
|
+
const matches = [];
|
|
57
|
+
for (const runtime of runtimes) {
|
|
58
|
+
try {
|
|
59
|
+
runtime.bridge.getSessionSummary(sessionId);
|
|
60
|
+
matches.push(runtime);
|
|
61
|
+
} catch (err) {
|
|
62
|
+
if (err instanceof SessionNotFoundError) continue;
|
|
63
|
+
throw err;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (matches.length === 0) return { kind: "not_found" };
|
|
67
|
+
if (matches.length === 1) {
|
|
68
|
+
return { kind: "found", runtime: matches[0] };
|
|
69
|
+
}
|
|
70
|
+
return { kind: "ambiguous", runtimes: matches };
|
|
71
|
+
}, "resolveLiveSessionOwner")
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
__name(createWorkspaceRegistry, "createWorkspaceRegistry");
|
|
75
|
+
function createSingleWorkspaceRegistry(runtime) {
|
|
76
|
+
return createWorkspaceRegistry([runtime]);
|
|
77
|
+
}
|
|
78
|
+
__name(createSingleWorkspaceRegistry, "createSingleWorkspaceRegistry");
|
|
79
|
+
|
|
80
|
+
export {
|
|
81
|
+
createWorkspaceRegistry,
|
|
82
|
+
createSingleWorkspaceRegistry
|
|
83
|
+
};
|
|
84
|
+
/**
|
|
85
|
+
* @license
|
|
86
|
+
* Copyright 2026 Qwen Team
|
|
87
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
88
|
+
*/
|
|
@@ -0,0 +1,487 @@
|
|
|
1
|
+
// Force strict mode and setup for ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
DEFAULT_EXCLUDED_ENV_VARS,
|
|
5
|
+
HOME_ENV_BOOTSTRAP_KEYS,
|
|
6
|
+
PROJECT_ENV_HARDCODED_EXCLUSIONS
|
|
7
|
+
} from "./chunk-Z3I3QJK3.js";
|
|
8
|
+
import {
|
|
9
|
+
isWorkspaceTrusted
|
|
10
|
+
} from "./chunk-VR3KCBHH.js";
|
|
11
|
+
import {
|
|
12
|
+
require_main
|
|
13
|
+
} from "./chunk-SKAZWEV5.js";
|
|
14
|
+
import {
|
|
15
|
+
QWEN_DIR,
|
|
16
|
+
Storage,
|
|
17
|
+
getErrorMessage
|
|
18
|
+
} from "./chunk-22MNNNXE.js";
|
|
19
|
+
import {
|
|
20
|
+
init_esbuild_shims
|
|
21
|
+
} from "./chunk-A4BMJM77.js";
|
|
22
|
+
import {
|
|
23
|
+
__name,
|
|
24
|
+
__toESM
|
|
25
|
+
} from "./chunk-J2S4EL5Y.js";
|
|
26
|
+
|
|
27
|
+
// packages/cli/src/config/environment.ts
|
|
28
|
+
init_esbuild_shims();
|
|
29
|
+
var dotenv = __toESM(require_main(), 1);
|
|
30
|
+
import * as fs from "node:fs";
|
|
31
|
+
import * as path from "node:path";
|
|
32
|
+
import * as os from "node:os";
|
|
33
|
+
var SETTINGS_DIRECTORY_NAME = QWEN_DIR;
|
|
34
|
+
var RELOAD_EXCLUDED_KEYS = /* @__PURE__ */ new Set([
|
|
35
|
+
...PROJECT_ENV_HARDCODED_EXCLUSIONS,
|
|
36
|
+
"QWEN_SERVER_TOKEN",
|
|
37
|
+
"QWEN_CLI_ENTRY",
|
|
38
|
+
"NODE_OPTIONS",
|
|
39
|
+
"NODE_PATH",
|
|
40
|
+
"NODE_TLS_REJECT_UNAUTHORIZED",
|
|
41
|
+
"LD_PRELOAD",
|
|
42
|
+
"LD_AUDIT",
|
|
43
|
+
"LD_LIBRARY_PATH",
|
|
44
|
+
"DYLD_INSERT_LIBRARIES",
|
|
45
|
+
"DYLD_LIBRARY_PATH",
|
|
46
|
+
"BASH_ENV",
|
|
47
|
+
"ENV",
|
|
48
|
+
"PATH",
|
|
49
|
+
"HOME",
|
|
50
|
+
"TMPDIR",
|
|
51
|
+
"TMP",
|
|
52
|
+
"TEMP"
|
|
53
|
+
]);
|
|
54
|
+
var dotEnvSourcedKeys = /* @__PURE__ */ new Set();
|
|
55
|
+
var settingsEnvSourcedKeys = /* @__PURE__ */ new Set();
|
|
56
|
+
var lastReloadSnapshot = /* @__PURE__ */ new Map();
|
|
57
|
+
var lastReloadSnapshotSeeded = false;
|
|
58
|
+
function getUserLevelEnvPaths() {
|
|
59
|
+
const homeDir = os.homedir();
|
|
60
|
+
const globalQwenDir = Storage.getGlobalQwenDir();
|
|
61
|
+
const paths = /* @__PURE__ */ new Set([
|
|
62
|
+
path.normalize(path.join(homeDir, ".env")),
|
|
63
|
+
path.normalize(path.join(globalQwenDir, ".env"))
|
|
64
|
+
]);
|
|
65
|
+
const legacyQwenEnv = path.normalize(path.join(homeDir, QWEN_DIR, ".env"));
|
|
66
|
+
paths.add(legacyQwenEnv);
|
|
67
|
+
return paths;
|
|
68
|
+
}
|
|
69
|
+
__name(getUserLevelEnvPaths, "getUserLevelEnvPaths");
|
|
70
|
+
var homeEnvBootstrapped = false;
|
|
71
|
+
function preResolveHomeEnvOverrides() {
|
|
72
|
+
if (homeEnvBootstrapped) {
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
homeEnvBootstrapped = true;
|
|
76
|
+
if (HOME_ENV_BOOTSTRAP_KEYS.every((key) => process.env[key])) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const initialQwenHome = process.env["QWEN_HOME"];
|
|
80
|
+
const initialQwenDir = Storage.getGlobalQwenDir();
|
|
81
|
+
const candidates = [path.join(initialQwenDir, ".env")];
|
|
82
|
+
if (!initialQwenHome) {
|
|
83
|
+
candidates.push(path.join(path.dirname(initialQwenDir), ".env"));
|
|
84
|
+
}
|
|
85
|
+
for (const candidate of candidates) {
|
|
86
|
+
readHomeEnvInto(candidate);
|
|
87
|
+
}
|
|
88
|
+
const discoveredQwenHome = process.env["QWEN_HOME"];
|
|
89
|
+
if (discoveredQwenHome && discoveredQwenHome !== initialQwenHome) {
|
|
90
|
+
const discoveredDir = Storage.getGlobalQwenDir();
|
|
91
|
+
if (discoveredDir !== initialQwenDir) {
|
|
92
|
+
readHomeEnvInto(path.join(discoveredDir, ".env"));
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
__name(preResolveHomeEnvOverrides, "preResolveHomeEnvOverrides");
|
|
97
|
+
function readHomeEnvInto(file) {
|
|
98
|
+
if (!fs.existsSync(file)) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
try {
|
|
102
|
+
const parsed = dotenv.parse(fs.readFileSync(file, "utf-8"));
|
|
103
|
+
for (const key of PROJECT_ENV_HARDCODED_EXCLUSIONS) {
|
|
104
|
+
if (parsed[key] && !Object.hasOwn(process.env, key)) {
|
|
105
|
+
process.env[key] = parsed[key];
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
} catch (_e) {
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
__name(readHomeEnvInto, "readHomeEnvInto");
|
|
112
|
+
function resetHomeEnvBootstrapForTesting() {
|
|
113
|
+
homeEnvBootstrapped = false;
|
|
114
|
+
}
|
|
115
|
+
__name(resetHomeEnvBootstrapForTesting, "resetHomeEnvBootstrapForTesting");
|
|
116
|
+
function resetEnvironmentTrackingForTesting() {
|
|
117
|
+
dotEnvSourcedKeys.clear();
|
|
118
|
+
settingsEnvSourcedKeys.clear();
|
|
119
|
+
lastReloadSnapshot.clear();
|
|
120
|
+
lastReloadSnapshotSeeded = false;
|
|
121
|
+
}
|
|
122
|
+
__name(resetEnvironmentTrackingForTesting, "resetEnvironmentTrackingForTesting");
|
|
123
|
+
function getHomeEnvFallbackVars(onReadError) {
|
|
124
|
+
const globalQwenDir = Storage.getGlobalQwenDir();
|
|
125
|
+
const candidates = [path.join(globalQwenDir, ".env")];
|
|
126
|
+
if (!process.env["QWEN_HOME"]) {
|
|
127
|
+
candidates.push(path.join(path.dirname(globalQwenDir), ".env"));
|
|
128
|
+
}
|
|
129
|
+
const result = {};
|
|
130
|
+
for (const candidate of candidates) {
|
|
131
|
+
if (!fs.existsSync(candidate)) {
|
|
132
|
+
continue;
|
|
133
|
+
}
|
|
134
|
+
try {
|
|
135
|
+
const parsed = dotenv.parse(fs.readFileSync(candidate, "utf-8"));
|
|
136
|
+
for (const key in parsed) {
|
|
137
|
+
if (Object.hasOwn(parsed, key) && !Object.hasOwn(process.env, key)) {
|
|
138
|
+
result[key] ??= parsed[key];
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
} catch (e) {
|
|
142
|
+
onReadError?.(
|
|
143
|
+
`Failed to read home .env candidate ${candidate}: ${getErrorMessage(e)}`
|
|
144
|
+
);
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
return result;
|
|
148
|
+
}
|
|
149
|
+
__name(getHomeEnvFallbackVars, "getHomeEnvFallbackVars");
|
|
150
|
+
function findEnvFiles(settings, startDir, userLevelPaths = getUserLevelEnvPaths()) {
|
|
151
|
+
const homeDir = os.homedir();
|
|
152
|
+
let realStartDir = path.resolve(startDir);
|
|
153
|
+
try {
|
|
154
|
+
realStartDir = fs.realpathSync(realStartDir);
|
|
155
|
+
} catch {
|
|
156
|
+
}
|
|
157
|
+
const isTrusted = isWorkspaceTrusted(
|
|
158
|
+
settings,
|
|
159
|
+
void 0,
|
|
160
|
+
realStartDir
|
|
161
|
+
).isTrusted;
|
|
162
|
+
const globalQwenDir = Storage.getGlobalQwenDir();
|
|
163
|
+
const legacyQwenDir = path.normalize(path.join(homeDir, QWEN_DIR));
|
|
164
|
+
const hasCustomConfigDir = path.normalize(globalQwenDir) !== legacyQwenDir;
|
|
165
|
+
const found = [];
|
|
166
|
+
const seen = /* @__PURE__ */ new Set();
|
|
167
|
+
const canUseEnvFile = /* @__PURE__ */ __name((filePath) => isTrusted !== false || userLevelPaths.has(path.normalize(filePath)), "canUseEnvFile");
|
|
168
|
+
const pushCandidate = /* @__PURE__ */ __name((filePath) => {
|
|
169
|
+
const normalized = path.normalize(filePath);
|
|
170
|
+
if (!seen.has(normalized) && fs.existsSync(filePath) && canUseEnvFile(filePath)) {
|
|
171
|
+
seen.add(normalized);
|
|
172
|
+
found.push(filePath);
|
|
173
|
+
return true;
|
|
174
|
+
}
|
|
175
|
+
return false;
|
|
176
|
+
}, "pushCandidate");
|
|
177
|
+
const pushHomeCandidates = /* @__PURE__ */ __name(() => {
|
|
178
|
+
const candidates = [path.join(globalQwenDir, ".env")];
|
|
179
|
+
if (hasCustomConfigDir) {
|
|
180
|
+
candidates.push(path.join(legacyQwenDir, ".env"));
|
|
181
|
+
}
|
|
182
|
+
candidates.push(path.join(homeDir, ".env"));
|
|
183
|
+
for (const candidate of candidates) {
|
|
184
|
+
pushCandidate(candidate);
|
|
185
|
+
}
|
|
186
|
+
}, "pushHomeCandidates");
|
|
187
|
+
let currentDir = realStartDir;
|
|
188
|
+
let visitedHomeDir = false;
|
|
189
|
+
while (true) {
|
|
190
|
+
if (currentDir === homeDir) {
|
|
191
|
+
visitedHomeDir = true;
|
|
192
|
+
pushHomeCandidates();
|
|
193
|
+
return found;
|
|
194
|
+
} else {
|
|
195
|
+
const geminiEnvPath = path.join(currentDir, QWEN_DIR, ".env");
|
|
196
|
+
if (pushCandidate(geminiEnvPath)) {
|
|
197
|
+
pushHomeCandidates();
|
|
198
|
+
return found;
|
|
199
|
+
}
|
|
200
|
+
const envPath = path.join(currentDir, ".env");
|
|
201
|
+
if (pushCandidate(envPath)) {
|
|
202
|
+
pushHomeCandidates();
|
|
203
|
+
return found;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
const parentDir = path.dirname(currentDir);
|
|
207
|
+
if (parentDir === currentDir || !parentDir) {
|
|
208
|
+
if (!visitedHomeDir) {
|
|
209
|
+
pushHomeCandidates();
|
|
210
|
+
}
|
|
211
|
+
return found;
|
|
212
|
+
}
|
|
213
|
+
currentDir = parentDir;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
__name(findEnvFiles, "findEnvFiles");
|
|
217
|
+
function setUpCloudShellEnvironment(envFilePath) {
|
|
218
|
+
if (envFilePath && fs.existsSync(envFilePath)) {
|
|
219
|
+
const envFileContent = fs.readFileSync(envFilePath);
|
|
220
|
+
const parsedEnv = dotenv.parse(envFileContent);
|
|
221
|
+
if (parsedEnv["GOOGLE_CLOUD_PROJECT"]) {
|
|
222
|
+
process.env["GOOGLE_CLOUD_PROJECT"] = parsedEnv["GOOGLE_CLOUD_PROJECT"];
|
|
223
|
+
} else {
|
|
224
|
+
process.env["GOOGLE_CLOUD_PROJECT"] = "cloudshell-gca";
|
|
225
|
+
}
|
|
226
|
+
} else {
|
|
227
|
+
process.env["GOOGLE_CLOUD_PROJECT"] = "cloudshell-gca";
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
__name(setUpCloudShellEnvironment, "setUpCloudShellEnvironment");
|
|
231
|
+
function setUpCloudShellEnvironmentInEnv(env, envFiles) {
|
|
232
|
+
for (const envFile of envFiles) {
|
|
233
|
+
if (envFile.parsedEnv["GOOGLE_CLOUD_PROJECT"]) {
|
|
234
|
+
env["GOOGLE_CLOUD_PROJECT"] = envFile.parsedEnv["GOOGLE_CLOUD_PROJECT"];
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
env["GOOGLE_CLOUD_PROJECT"] = "cloudshell-gca";
|
|
239
|
+
}
|
|
240
|
+
__name(setUpCloudShellEnvironmentInEnv, "setUpCloudShellEnvironmentInEnv");
|
|
241
|
+
function parseEnvFiles(envFilePaths, userLevelPaths) {
|
|
242
|
+
const files = [];
|
|
243
|
+
const readFailures = [];
|
|
244
|
+
for (const envFilePath of envFilePaths) {
|
|
245
|
+
try {
|
|
246
|
+
const envFileContent = fs.readFileSync(envFilePath, "utf-8");
|
|
247
|
+
const parsedEnv = dotenv.parse(envFileContent);
|
|
248
|
+
const normalizedEnvFilePath = path.normalize(envFilePath);
|
|
249
|
+
const isHomeScopedEnvFile = userLevelPaths.has(normalizedEnvFilePath);
|
|
250
|
+
const isQwenScopedEnvFile = isHomeScopedEnvFile || path.basename(path.dirname(normalizedEnvFilePath)) === QWEN_DIR;
|
|
251
|
+
files.push({
|
|
252
|
+
parsedEnv,
|
|
253
|
+
isHomeScopedEnvFile,
|
|
254
|
+
isQwenScopedEnvFile
|
|
255
|
+
});
|
|
256
|
+
} catch (err) {
|
|
257
|
+
readFailures.push({
|
|
258
|
+
path: envFilePath,
|
|
259
|
+
error: getErrorMessage(err)
|
|
260
|
+
});
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
return { files, readFailed: readFailures.length > 0, readFailures };
|
|
264
|
+
}
|
|
265
|
+
__name(parseEnvFiles, "parseEnvFiles");
|
|
266
|
+
function canApplyParsedEnvKey(envFile, key, excludedVars, options = {}) {
|
|
267
|
+
if (!Object.hasOwn(envFile.parsedEnv, key)) return false;
|
|
268
|
+
if (options.reload && RELOAD_EXCLUDED_KEYS.has(key)) return false;
|
|
269
|
+
if (!envFile.isHomeScopedEnvFile && PROJECT_ENV_HARDCODED_EXCLUSIONS.includes(key)) {
|
|
270
|
+
return false;
|
|
271
|
+
}
|
|
272
|
+
return envFile.isQwenScopedEnvFile || !excludedVars.includes(key);
|
|
273
|
+
}
|
|
274
|
+
__name(canApplyParsedEnvKey, "canApplyParsedEnvKey");
|
|
275
|
+
function isEffectivelyUnset(env, key) {
|
|
276
|
+
const existingValue = env[key];
|
|
277
|
+
return !Object.hasOwn(env, key) || existingValue === "";
|
|
278
|
+
}
|
|
279
|
+
__name(isEffectivelyUnset, "isEffectivelyUnset");
|
|
280
|
+
function setRuntimeEnvIfUnset(env, key, value) {
|
|
281
|
+
if (isEffectivelyUnset(env, key)) {
|
|
282
|
+
env[key] = value;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
__name(setRuntimeEnvIfUnset, "setRuntimeEnvIfUnset");
|
|
286
|
+
function buildRuntimeEnvironment(settings, startDir = process.cwd(), baseEnv = process.env) {
|
|
287
|
+
const userLevelPaths = getUserLevelEnvPaths();
|
|
288
|
+
const envFilePaths = findEnvFiles(settings, startDir, userLevelPaths);
|
|
289
|
+
const parsedEnvFiles = parseEnvFiles(envFilePaths, userLevelPaths);
|
|
290
|
+
const effectiveEnv = { ...baseEnv };
|
|
291
|
+
if (baseEnv["CLOUD_SHELL"] === "true") {
|
|
292
|
+
setUpCloudShellEnvironmentInEnv(effectiveEnv, parsedEnvFiles.files);
|
|
293
|
+
}
|
|
294
|
+
for (const envFile of parsedEnvFiles.files) {
|
|
295
|
+
const excludedVars = settings?.advanced?.excludedEnvVars || DEFAULT_EXCLUDED_ENV_VARS;
|
|
296
|
+
for (const key in envFile.parsedEnv) {
|
|
297
|
+
if (!canApplyParsedEnvKey(envFile, key, excludedVars, { reload: true })) {
|
|
298
|
+
continue;
|
|
299
|
+
}
|
|
300
|
+
setRuntimeEnvIfUnset(effectiveEnv, key, envFile.parsedEnv[key]);
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
if (settings.env) {
|
|
304
|
+
const excludedVars = settings?.advanced?.excludedEnvVars || DEFAULT_EXCLUDED_ENV_VARS;
|
|
305
|
+
for (const [key, value] of Object.entries(settings.env)) {
|
|
306
|
+
if (RELOAD_EXCLUDED_KEYS.has(key)) continue;
|
|
307
|
+
if (PROJECT_ENV_HARDCODED_EXCLUSIONS.includes(key)) continue;
|
|
308
|
+
if (excludedVars.includes(key)) continue;
|
|
309
|
+
if (typeof value !== "string") continue;
|
|
310
|
+
setRuntimeEnvIfUnset(effectiveEnv, key, value);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
const overlayKeys = Object.keys(effectiveEnv).filter((key) => effectiveEnv[key] !== baseEnv[key]).sort();
|
|
314
|
+
return {
|
|
315
|
+
effectiveEnv: Object.freeze({ ...effectiveEnv }),
|
|
316
|
+
overlayKeys: Object.freeze(overlayKeys),
|
|
317
|
+
envFilePaths: Object.freeze([...envFilePaths]),
|
|
318
|
+
envFileReadFailed: parsedEnvFiles.readFailed,
|
|
319
|
+
envFileReadFailures: Object.freeze([...parsedEnvFiles.readFailures])
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
__name(buildRuntimeEnvironment, "buildRuntimeEnvironment");
|
|
323
|
+
function loadEnvironment(settings, startDir = process.cwd()) {
|
|
324
|
+
const userLevelPaths = getUserLevelEnvPaths();
|
|
325
|
+
const envFilePaths = findEnvFiles(settings, startDir, userLevelPaths);
|
|
326
|
+
const parsedEnvFiles = parseEnvFiles(envFilePaths, userLevelPaths);
|
|
327
|
+
if (process.env["CLOUD_SHELL"] === "true") {
|
|
328
|
+
setUpCloudShellEnvironmentInEnv(process.env, parsedEnvFiles.files);
|
|
329
|
+
}
|
|
330
|
+
for (const envFile of parsedEnvFiles.files) {
|
|
331
|
+
const excludedVars = settings?.advanced?.excludedEnvVars || DEFAULT_EXCLUDED_ENV_VARS;
|
|
332
|
+
for (const key in envFile.parsedEnv) {
|
|
333
|
+
if (!canApplyParsedEnvKey(envFile, key, excludedVars)) continue;
|
|
334
|
+
const existingValue = process.env[key];
|
|
335
|
+
const isEffectivelyUnset2 = !Object.hasOwn(process.env, key) || existingValue === "";
|
|
336
|
+
if (isEffectivelyUnset2) {
|
|
337
|
+
process.env[key] = envFile.parsedEnv[key];
|
|
338
|
+
dotEnvSourcedKeys.add(key);
|
|
339
|
+
}
|
|
340
|
+
if (!lastReloadSnapshotSeeded && !lastReloadSnapshot.has(key)) {
|
|
341
|
+
lastReloadSnapshot.set(key, envFile.parsedEnv[key]);
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
if (settings.env) {
|
|
346
|
+
for (const [key, value] of Object.entries(settings.env)) {
|
|
347
|
+
if (RELOAD_EXCLUDED_KEYS.has(key)) {
|
|
348
|
+
continue;
|
|
349
|
+
}
|
|
350
|
+
if (PROJECT_ENV_HARDCODED_EXCLUSIONS.includes(key)) {
|
|
351
|
+
continue;
|
|
352
|
+
}
|
|
353
|
+
const existingValue = process.env[key];
|
|
354
|
+
const isEffectivelyUnset2 = !Object.hasOwn(process.env, key) || existingValue === "";
|
|
355
|
+
if (isEffectivelyUnset2 && typeof value === "string") {
|
|
356
|
+
process.env[key] = value;
|
|
357
|
+
settingsEnvSourcedKeys.add(key);
|
|
358
|
+
}
|
|
359
|
+
if (!lastReloadSnapshotSeeded && typeof value === "string" && !lastReloadSnapshot.has(key)) {
|
|
360
|
+
lastReloadSnapshot.set(key, value);
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
lastReloadSnapshotSeeded = true;
|
|
365
|
+
applyZubriqDefaults();
|
|
366
|
+
}
|
|
367
|
+
__name(loadEnvironment, "loadEnvironment");
|
|
368
|
+
function applyZubriqDefaults() {
|
|
369
|
+
if (process.env["ZUBRIQ_API_KEY"] && !process.env["OPENAI_API_KEY"]) {
|
|
370
|
+
process.env["OPENAI_API_KEY"] = process.env["ZUBRIQ_API_KEY"];
|
|
371
|
+
}
|
|
372
|
+
if (process.env["OPENAI_API_KEY"]) {
|
|
373
|
+
if (!process.env["OPENAI_BASE_URL"]) {
|
|
374
|
+
process.env["OPENAI_BASE_URL"] = "https://api.zubriq.by/v1";
|
|
375
|
+
}
|
|
376
|
+
if (!process.env["OPENAI_MODEL"] && !process.env["QWEN_MODEL"]) {
|
|
377
|
+
process.env["OPENAI_MODEL"] = "qwen3.6-35b";
|
|
378
|
+
}
|
|
379
|
+
if (!process.env["QWEN_CODE_MAX_OUTPUT_TOKENS"]) {
|
|
380
|
+
process.env["QWEN_CODE_MAX_OUTPUT_TOKENS"] = "8192";
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
__name(applyZubriqDefaults, "applyZubriqDefaults");
|
|
385
|
+
function reloadEnvironment(settings, workspaceCwd) {
|
|
386
|
+
const userLevelPaths = getUserLevelEnvPaths();
|
|
387
|
+
const envFilePaths = findEnvFiles(settings, workspaceCwd, userLevelPaths);
|
|
388
|
+
const parsedEnvFiles = parseEnvFiles(envFilePaths, userLevelPaths);
|
|
389
|
+
if (process.env["CLOUD_SHELL"] === "true") {
|
|
390
|
+
setUpCloudShellEnvironmentInEnv(process.env, parsedEnvFiles.files);
|
|
391
|
+
}
|
|
392
|
+
const dotEnvReadFailed = parsedEnvFiles.readFailed;
|
|
393
|
+
const newDotEnvKeys = /* @__PURE__ */ new Map();
|
|
394
|
+
const newSettingsEnvKeys = /* @__PURE__ */ new Map();
|
|
395
|
+
for (const envFile of parsedEnvFiles.files) {
|
|
396
|
+
const excludedVars = settings?.advanced?.excludedEnvVars || DEFAULT_EXCLUDED_ENV_VARS;
|
|
397
|
+
for (const key in envFile.parsedEnv) {
|
|
398
|
+
if (!canApplyParsedEnvKey(envFile, key, excludedVars, { reload: true })) {
|
|
399
|
+
continue;
|
|
400
|
+
}
|
|
401
|
+
if (!newDotEnvKeys.has(key)) {
|
|
402
|
+
newDotEnvKeys.set(key, envFile.parsedEnv[key]);
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
if (settings.env) {
|
|
407
|
+
for (const [key, value] of Object.entries(settings.env)) {
|
|
408
|
+
if (RELOAD_EXCLUDED_KEYS.has(key)) continue;
|
|
409
|
+
if (PROJECT_ENV_HARDCODED_EXCLUSIONS.includes(key)) continue;
|
|
410
|
+
if (typeof value !== "string") continue;
|
|
411
|
+
const dotEnvValue = newDotEnvKeys.get(key);
|
|
412
|
+
if (dotEnvValue !== void 0 && dotEnvValue !== "") continue;
|
|
413
|
+
if (dotEnvReadFailed && lastReloadSnapshot.has(key)) continue;
|
|
414
|
+
newSettingsEnvKeys.set(key, value);
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
const allNewKeys = /* @__PURE__ */ new Set([
|
|
418
|
+
...newDotEnvKeys.keys(),
|
|
419
|
+
...newSettingsEnvKeys.keys()
|
|
420
|
+
]);
|
|
421
|
+
const updatedKeys = [];
|
|
422
|
+
const removedKeys = [];
|
|
423
|
+
if (!dotEnvReadFailed) {
|
|
424
|
+
const previouslyKnown = /* @__PURE__ */ new Set([
|
|
425
|
+
...lastReloadSnapshot.keys(),
|
|
426
|
+
...dotEnvSourcedKeys,
|
|
427
|
+
...settingsEnvSourcedKeys
|
|
428
|
+
]);
|
|
429
|
+
for (const key of previouslyKnown) {
|
|
430
|
+
if (!allNewKeys.has(key) && !RELOAD_EXCLUDED_KEYS.has(key)) {
|
|
431
|
+
delete process.env[key];
|
|
432
|
+
removedKeys.push(key);
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
for (const [key, value] of newDotEnvKeys) {
|
|
437
|
+
if (value === "" && newSettingsEnvKeys.has(key)) continue;
|
|
438
|
+
if (process.env[key] !== value) {
|
|
439
|
+
updatedKeys.push(key);
|
|
440
|
+
}
|
|
441
|
+
process.env[key] = value;
|
|
442
|
+
}
|
|
443
|
+
for (const [key, value] of newSettingsEnvKeys) {
|
|
444
|
+
if (process.env[key] !== value) {
|
|
445
|
+
updatedKeys.push(key);
|
|
446
|
+
}
|
|
447
|
+
process.env[key] = value;
|
|
448
|
+
}
|
|
449
|
+
if (!dotEnvReadFailed) {
|
|
450
|
+
dotEnvSourcedKeys.clear();
|
|
451
|
+
for (const key of newDotEnvKeys.keys()) {
|
|
452
|
+
dotEnvSourcedKeys.add(key);
|
|
453
|
+
}
|
|
454
|
+
lastReloadSnapshot.clear();
|
|
455
|
+
for (const [key, value] of newDotEnvKeys) {
|
|
456
|
+
lastReloadSnapshot.set(key, value);
|
|
457
|
+
}
|
|
458
|
+
for (const [key, value] of newSettingsEnvKeys) {
|
|
459
|
+
lastReloadSnapshot.set(key, value);
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
settingsEnvSourcedKeys.clear();
|
|
463
|
+
for (const key of newSettingsEnvKeys.keys()) {
|
|
464
|
+
settingsEnvSourcedKeys.add(key);
|
|
465
|
+
}
|
|
466
|
+
return { updatedKeys, removedKeys };
|
|
467
|
+
}
|
|
468
|
+
__name(reloadEnvironment, "reloadEnvironment");
|
|
469
|
+
|
|
470
|
+
export {
|
|
471
|
+
SETTINGS_DIRECTORY_NAME,
|
|
472
|
+
preResolveHomeEnvOverrides,
|
|
473
|
+
resetHomeEnvBootstrapForTesting,
|
|
474
|
+
resetEnvironmentTrackingForTesting,
|
|
475
|
+
getHomeEnvFallbackVars,
|
|
476
|
+
findEnvFiles,
|
|
477
|
+
setUpCloudShellEnvironment,
|
|
478
|
+
buildRuntimeEnvironment,
|
|
479
|
+
loadEnvironment,
|
|
480
|
+
applyZubriqDefaults,
|
|
481
|
+
reloadEnvironment
|
|
482
|
+
};
|
|
483
|
+
/**
|
|
484
|
+
* @license
|
|
485
|
+
* Copyright 2025 Qwen Team
|
|
486
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
487
|
+
*/
|
|
@@ -4,14 +4,14 @@ import {
|
|
|
4
4
|
resolveModelConfig,
|
|
5
5
|
resolveProviderProtocol,
|
|
6
6
|
stripRuntimeSnapshotPrefix
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-5MRUKUOG.js";
|
|
8
8
|
import {
|
|
9
9
|
external_exports
|
|
10
10
|
} from "./chunk-K5PGHDBN.js";
|
|
11
11
|
import {
|
|
12
12
|
AuthType,
|
|
13
13
|
MODEL_GENERATION_CONFIG_FIELDS
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-27AYMAL6.js";
|
|
15
15
|
import {
|
|
16
16
|
REASONING_EFFORT_TIERS,
|
|
17
17
|
normalizeReasoningEffort
|
|
@@ -214,20 +214,20 @@ function buildIgnoredTopLevelGenerationConfigWarning(providerId, modelProvider,
|
|
|
214
214
|
return `Warning: ${fieldList} ${verb} ignored for provider model "${modelProvider.id}" from modelProviders.${providerId}. Move ${fieldReference} to modelProviders.${providerId}[].generationConfig for that model if you want ${pronoun} to apply.`;
|
|
215
215
|
}
|
|
216
216
|
__name(buildIgnoredTopLevelGenerationConfigWarning, "buildIgnoredTopLevelGenerationConfigWarning");
|
|
217
|
-
function getAuthTypeFromEnv() {
|
|
218
|
-
if (
|
|
217
|
+
function getAuthTypeFromEnv(env = process.env) {
|
|
218
|
+
if (env["QWEN_OAUTH"]) {
|
|
219
219
|
return "qwen-oauth" /* QWEN_OAUTH */;
|
|
220
220
|
}
|
|
221
|
-
if (
|
|
221
|
+
if (env["OPENAI_API_KEY"] && (env["OPENAI_MODEL"] || env["QWEN_MODEL"]) && env["OPENAI_BASE_URL"]) {
|
|
222
222
|
return "openai" /* USE_OPENAI */;
|
|
223
223
|
}
|
|
224
|
-
if (
|
|
224
|
+
if (env["GEMINI_API_KEY"] && env["GEMINI_MODEL"]) {
|
|
225
225
|
return "gemini" /* USE_GEMINI */;
|
|
226
226
|
}
|
|
227
|
-
if (
|
|
227
|
+
if (env["GOOGLE_API_KEY"] && env["GOOGLE_MODEL"]) {
|
|
228
228
|
return "vertex-ai" /* USE_VERTEX_AI */;
|
|
229
229
|
}
|
|
230
|
-
if (
|
|
230
|
+
if (env["ANTHROPIC_API_KEY"] && env["ANTHROPIC_MODEL"] && env["ANTHROPIC_BASE_URL"]) {
|
|
231
231
|
return "anthropic" /* USE_ANTHROPIC */;
|
|
232
232
|
}
|
|
233
233
|
return void 0;
|