@qwen-code/qwen-code 0.21.7 → 0.21.8-nightly.20260810.55e20db328
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/README.md +2 -0
- package/bundled/qc-helper/docs/configuration/settings.md +73 -59
- package/bundled/qc-helper/docs/extension/introduction.md +15 -1
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +40 -2
- package/bundled/qc-helper/docs/features/channels/feishu.md +13 -2
- package/bundled/qc-helper/docs/features/channels/github.md +13 -11
- package/bundled/qc-helper/docs/features/channels/gitlab.md +13 -11
- package/bundled/qc-helper/docs/features/channels/overview.md +49 -31
- package/bundled/qc-helper/docs/features/channels/plugins.md +2 -2
- package/bundled/qc-helper/docs/features/channels/qqbot.md +4 -2
- package/bundled/qc-helper/docs/features/channels/telegram.md +4 -2
- package/bundled/qc-helper/docs/features/channels/wecom.md +1 -1
- package/bundled/qc-helper/docs/features/code-review.md +4 -0
- package/bundled/qc-helper/docs/features/commands.md +1 -1
- package/bundled/qc-helper/docs/features/hooks.md +52 -0
- package/bundled/qc-helper/docs/integration-jetbrains.md +1 -0
- package/bundled/qc-helper/docs/qwen-serve-deploy-local.md +1 -1
- package/bundled/qc-helper/docs/qwen-serve.md +10 -5
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +50 -36
- package/bundled/review/SKILL.md +32 -5
- package/chunks/{MaxSizedBox-ANWZBPTS.js → MaxSizedBox-A52T4GEU.js} +29 -25
- package/chunks/{StandaloneSessionPicker-XKS3VU3A.js → StandaloneSessionPicker-4J654SOB.js} +48 -44
- package/chunks/{acp-startup-profiler-ORIQ2CCQ.js → acp-startup-profiler-B5BYAMYQ.js} +2 -2
- package/chunks/{acpAgent-KUAZ3GCZ.js → acpAgent-65AM4AOR.js} +1833 -843
- package/chunks/{agent-T6PTGX5R.js → agent-SVQ7U7NJ.js} +28 -24
- package/chunks/{agent-headless-PR7YCB7S.js → agent-headless-XXGY2SQO.js} +28 -24
- package/chunks/{artifact-tool-U4VOZIK5.js → artifact-tool-N652YE4L.js} +1 -1
- package/chunks/{askUserQuestion-XOBQLPFA.js → askUserQuestion-ONW74PKJ.js} +1 -1
- package/chunks/{bridge-NU6YEEHK.js → bridge-Y32B5S3G.js} +34 -30
- package/chunks/{ca-NYKNH222.js → ca-ZLKAB4K3.js} +6 -0
- package/chunks/{channel-management-service-FSQ7SHYI.js → channel-management-service-PHELKOW2.js} +19 -10
- package/chunks/{channel-settings-store-35VQVUVV.js → channel-settings-store-OW43U6VB.js} +36 -32
- package/chunks/{channel-worker-group-JWQK224X.js → channel-worker-group-MSHT6CWR.js} +7 -7
- package/chunks/{channel-worker-manager-77E3OXRQ.js → channel-worker-manager-XXD3GDSK.js} +7 -7
- package/chunks/{channel-worker-supervisor-62YWUGP2.js → channel-worker-supervisor-IVSDIMI4.js} +4 -4
- package/chunks/{chunk-HYRDKNUY.js → chunk-2545EHZR.js} +1 -1
- package/chunks/{chunk-SPMY6CX6.js → chunk-2ASQDZSJ.js} +3 -3
- package/chunks/{chunk-CJXIIILK.js → chunk-2FRY5CRX.js} +1 -1
- package/chunks/{chunk-CNIID3TV.js → chunk-2UUMVNYT.js} +1 -1
- package/chunks/{chunk-KXSDEOFU.js → chunk-3KJQZEN3.js} +1 -1
- package/chunks/{chunk-22NBYCPD.js → chunk-3P2LV43B.js} +1 -1
- package/chunks/{chunk-Y7E5LNLO.js → chunk-47ZUMGGY.js} +2634 -2114
- package/chunks/{chunk-LA7YLSR6.js → chunk-4EOURKA4.js} +839 -153
- package/chunks/chunk-4JRM2BSM.js +48 -0
- package/chunks/{chunk-BGG4MBYD.js → chunk-4PYCZH2V.js} +4 -187
- package/chunks/{chunk-L4N6TIP7.js → chunk-4TRQPFDP.js} +4 -2
- package/chunks/{chunk-6XJMFJ4D.js → chunk-5WZL724W.js} +177 -120
- package/chunks/{chunk-23RZCH76.js → chunk-5ZTS3OQ3.js} +3 -3
- package/chunks/{chunk-VWOVHOTT.js → chunk-67EWJE77.js} +1 -1
- package/chunks/{chunk-3K7FH2KQ.js → chunk-67N6HB5H.js} +1310 -171
- package/chunks/{chunk-CXE7E23H.js → chunk-6Q5ABMTU.js} +45 -17
- package/chunks/{chunk-NG2R4N5O.js → chunk-6ZRFAKXK.js} +1 -1
- package/chunks/{chunk-RERATVSK.js → chunk-7XX5IBXL.js} +145 -10
- package/chunks/{chunk-S7CV4KO6.js → chunk-AKJQSWV4.js} +4 -4
- package/chunks/{chunk-5KH532V7.js → chunk-AUWN7BAG.js} +1 -1
- package/chunks/{chunk-DBOFL3LQ.js → chunk-BL65MO72.js} +10 -10
- package/chunks/{chunk-AKA24BGO.js → chunk-BT6GQIEJ.js} +1 -1
- package/chunks/{chunk-W7U4ESW2.js → chunk-CG3WBKJK.js} +1 -1
- package/chunks/{chunk-2M5N3DHY.js → chunk-CMOBWHWW.js} +1 -1
- package/chunks/chunk-COBO5EBO.js +135 -0
- package/chunks/chunk-CPG6P4GG.js +82 -0
- package/chunks/{chunk-3NB7TSE2.js → chunk-D2D7J3EW.js} +1 -1
- package/chunks/{chunk-NLREQJFK.js → chunk-DA4HRSBW.js} +15 -0
- package/chunks/{chunk-RNVQB725.js → chunk-DPMJLKUP.js} +2 -2
- package/chunks/{chunk-DIEFUBV6.js → chunk-DX3RGJMS.js} +218 -37
- package/chunks/{chunk-33ACCIIY.js → chunk-DZUO626D.js} +1 -1
- package/chunks/chunk-E2FPSSKP.js +244 -0
- package/chunks/{chunk-72LNFGUY.js → chunk-E2N554HK.js} +3 -3
- package/chunks/{chunk-6EOI4HOK.js → chunk-E2T7FLDU.js} +12 -17
- package/chunks/{chunk-EUQTXRKZ.js → chunk-EISUQQPS.js} +6 -6
- package/chunks/{chunk-H2UQ2M5Z.js → chunk-EUVOKP6Y.js} +96 -22
- package/chunks/{chunk-RMH5OWLD.js → chunk-F3II4BTZ.js} +1 -1
- package/chunks/{chunk-P3LEG54R.js → chunk-F6TUUA2U.js} +3 -3
- package/chunks/chunk-F6WFNA7U.js +22 -0
- package/chunks/{chunk-RZHU3ILK.js → chunk-FAD7OC7V.js} +4 -4
- package/chunks/{chunk-OMKQH5C5.js → chunk-FWWQIFDT.js} +6 -23
- package/chunks/{chunk-TLV2IMHR.js → chunk-FYB4GIDW.js} +3 -3
- package/chunks/{chunk-ZJ3VGYHK.js → chunk-GY24H6IA.js} +40 -22
- package/chunks/{chunk-P2AJ7FTI.js → chunk-H4JC7LZX.js} +1 -1
- package/chunks/{chunk-55LYDVPU.js → chunk-HDYQYYWB.js} +1 -1
- package/chunks/{chunk-PQBHU2IA.js → chunk-HKI3KHAO.js} +11 -11
- package/chunks/{chunk-Y4NGLFGJ.js → chunk-HUWENAHO.js} +1 -1
- package/chunks/{chunk-3ULCB3NE.js → chunk-HV76SFIA.js} +1 -1
- package/chunks/{chunk-CSZEXZBE.js → chunk-HWXGX534.js} +3 -3
- package/chunks/{chunk-E33LOKRA.js → chunk-I5VM3SKY.js} +22 -5
- package/chunks/{chunk-LZC3B5N2.js → chunk-IA7TGCN2.js} +2 -2
- package/chunks/{chunk-RGSBTHSU.js → chunk-KMS57JDD.js} +137 -7
- package/chunks/{chunk-VOARQPTA.js → chunk-KP25NJNM.js} +65 -21
- package/chunks/{chunk-6M26GBKX.js → chunk-L2AFWWJE.js} +42 -3
- package/chunks/{chunk-ZXU5UHMI.js → chunk-LHEC5V6G.js} +2 -2
- package/chunks/{chunk-J26HHFI5.js → chunk-LP2QGNSP.js} +32 -2
- package/chunks/{chunk-R574ATRM.js → chunk-M2PNLYGY.js} +41 -0
- package/chunks/{chunk-MKVZE4ZJ.js → chunk-MFDYOYZZ.js} +3 -2
- package/chunks/{chunk-ALGGS7UH.js → chunk-NPQ5ZKRP.js} +82 -1
- package/chunks/{chunk-YHEEE624.js → chunk-NV3F44FL.js} +7 -3
- package/chunks/{chunk-6GONZVLS.js → chunk-NZMXUSKS.js} +1 -1
- package/chunks/{chunk-HQB2KUAN.js → chunk-O277O7U6.js} +1 -1
- package/chunks/{chunk-Y4EWSQF7.js → chunk-OBP6QWD5.js} +2 -2
- package/chunks/{chunk-CYR3HI5X.js → chunk-OQTXYMKW.js} +2 -2
- package/chunks/{chunk-TYKC75AX.js → chunk-OR6R3IUW.js} +2 -2
- package/chunks/{chunk-TRLYP7OF.js → chunk-OSVH4SMN.js} +16 -141
- package/chunks/{chunk-FPM27XN4.js → chunk-OW2BWT2P.js} +4 -4
- package/chunks/{chunk-TDXGKHDN.js → chunk-P5ULXPK5.js} +2 -2
- package/chunks/{chunk-24ER7UV4.js → chunk-PBRVUF5B.js} +1 -1
- package/chunks/{chunk-LKRMNRSN.js → chunk-PDPFQ2FO.js} +2 -0
- package/chunks/{chunk-2VSTGY6M.js → chunk-PJRW65JO.js} +1 -1
- package/chunks/{chunk-6HVUFDS2.js → chunk-PNVPFARW.js} +22 -13
- package/chunks/{chunk-IC4Z6LX6.js → chunk-PYQADEFD.js} +5 -0
- package/chunks/chunk-R4ZA6GBK.js +208 -0
- package/chunks/{chunk-KR4ZSC7K.js → chunk-RMPLEWF3.js} +3 -3
- package/chunks/{chunk-EORNAQDT.js → chunk-RQ6U2JJQ.js} +1 -1
- package/chunks/{chunk-AE77C5ZU.js → chunk-RYQMJCUO.js} +1 -1
- package/chunks/{chunk-6UWFTUQL.js → chunk-S5CULOHB.js} +75 -31
- package/chunks/{chunk-7UFKAV7Y.js → chunk-S6HYI3MF.js} +2 -2
- package/chunks/chunk-SAH4BD2J.js +92 -0
- package/chunks/chunk-SR7RZ4MS.js +202 -0
- package/chunks/{chunk-QETYKPMG.js → chunk-T2O6NIOY.js} +1 -1
- package/chunks/chunk-TQOF5KBL.js +71 -0
- package/chunks/{chunk-OHJLEW5J.js → chunk-TWFFY5BP.js} +4 -4
- package/chunks/{chunk-SCI7K3GM.js → chunk-TXO5BMR2.js} +19 -10
- package/chunks/{chunk-YJQCUTT2.js → chunk-UAB6J2IE.js} +4 -4
- package/chunks/{chunk-OFI7IGST.js → chunk-UGUKH3SU.js} +10 -10
- package/chunks/{chunk-SHZYHGQH.js → chunk-V2226RFW.js} +1 -1
- package/chunks/{chunk-KKJJB5X6.js → chunk-V47QNK5W.js} +1526 -833
- package/chunks/{chunk-W4B7UBUS.js → chunk-VHXPSL57.js} +6 -6
- package/chunks/{chunk-WUC6ZFXO.js → chunk-VKJ4KTPJ.js} +1 -1
- package/chunks/{chunk-MAJS7AT4.js → chunk-VNNWAZSI.js} +2 -2
- package/chunks/{chunk-BVWVWGLE.js → chunk-WAUGQKUU.js} +4 -64
- package/chunks/{chunk-OH2VKQXH.js → chunk-WH6QMLUW.js} +37 -30
- package/chunks/{chunk-PJOBIWUG.js → chunk-WQYWK4DG.js} +1 -1
- package/chunks/{chunk-LEMXGVEP.js → chunk-YFRFZCIP.js} +3 -3
- package/chunks/{chunk-2U3WZGZG.js → chunk-YGT2AUJ7.js} +103 -135
- package/chunks/{chunk-6XU3PH66.js → chunk-YR7ZQ4RD.js} +22 -69
- package/chunks/{chunk-OA4JVLSA.js → chunk-Z7VOMGDC.js} +22 -1
- package/chunks/{chunk-RUL4S3K3.js → chunk-ZCJBCKL5.js} +175 -60
- package/chunks/{chunk-GSS34377.js → chunk-ZI5IH2HP.js} +2 -2
- package/chunks/{chunk-CB2464BK.js → chunk-ZIKTCMQF.js} +117 -10
- package/chunks/chunk-ZLBIFIMV.js +1099 -0
- package/chunks/{chunk-D3UEZIQH.js → chunk-ZSNBQXMZ.js} +48 -55
- package/chunks/{chunk-FZBZSYKU.js → chunk-ZV7LTLFE.js} +1 -1
- package/chunks/{computer-use-KEAPATUY.js → computer-use-SLN7DV2E.js} +28 -24
- package/chunks/{config-utils-K7SCOWHD.js → config-utils-ULCSRMWD.js} +4 -4
- package/chunks/{contextCommand-ZJA6A5K5.js → contextCommand-EHFYX6FW.js} +30 -26
- package/chunks/{core-runtime-QMJPWHCI.js → core-runtime-FBSP5IIG.js} +33 -29
- package/chunks/{create-sub-session-E4PBYXV5.js → create-sub-session-QIDZUOPU.js} +1 -1
- package/chunks/{create-sub-session-DJE6XICH.js → create-sub-session-WC7YGVSL.js} +29 -25
- package/chunks/{cron-create-GRBWYMIJ.js → cron-create-VONA5JYY.js} +1 -1
- package/chunks/{cron-delete-4CMKBR2M.js → cron-delete-5JXSP2MI.js} +1 -1
- package/chunks/{cron-list-W7K4ASOA.js → cron-list-KE4F2CIR.js} +1 -1
- package/chunks/{daemon-SCTQMM7Z.js → daemon-VSX3FHTY.js} +119 -4
- package/chunks/{daemon-status-provider-FSWDPE2G.js → daemon-status-provider-WW2AD2T7.js} +39 -35
- package/chunks/{daemon-trust-policy-P5L5VFAY.js → daemon-trust-policy-E4MAYWPI.js} +35 -31
- package/chunks/{daemon-trust-policy-monitor-73JYN6ET.js → daemon-trust-policy-monitor-XVIDV6T4.js} +35 -31
- package/chunks/{de-VL76CPLV.js → de-LIW4XVLN.js} +5 -0
- package/chunks/{deferred-core-runtime-BWRCCFTE.js → deferred-core-runtime-5SVUC6UC.js} +28 -24
- package/chunks/{display-image-O2XFPQTC.js → display-image-NQRSIBXM.js} +2 -2
- package/chunks/{dist-HVBMEYWK.js → dist-3NTTUAHT.js} +1 -1
- package/chunks/{dist-7JGAAQSC.js → dist-6BMOAE3Z.js} +2 -2
- package/chunks/{dist-3BMEUGTG.js → dist-B2CGTW6T.js} +1 -1
- package/chunks/{dist-C5U4LJKW.js → dist-EWW3J4HQ.js} +5 -4
- package/chunks/{dist-K4WWQBHS.js → dist-EZE3V3Q7.js} +55 -15
- package/chunks/{dist-DPPHJAVL.js → dist-J47AXBZC.js} +918 -142
- package/chunks/{dist-SFQ34F4M.js → dist-OTUO3AS2.js} +8 -1091
- package/chunks/{dist-KS4O2NKE.js → dist-Z3CS4OVP.js} +14 -8
- package/chunks/{earlyInputCapture-L5ST23A6.js → earlyInputCapture-72FYHYRD.js} +28 -24
- package/chunks/{edit-LHHRFNFK.js → edit-SWVVWHXW.js} +28 -24
- package/chunks/{en-IRJ2WN5T.js → en-SY5GTIGX.js} +6 -0
- package/chunks/{enter-worktree-6NXCRZPF.js → enter-worktree-2HF6WQEO.js} +28 -24
- package/chunks/{enterPlanMode-ZVQT4U7D.js → enterPlanMode-OW6S7L4P.js} +28 -24
- package/chunks/{environment-GJ2HWJOS.js → environment-LRTBTDXH.js} +32 -28
- package/chunks/{errors-6RLH3XXC.js → errors-4CO2DME6.js} +30 -26
- package/chunks/{exit-worktree-I2YLUHHY.js → exit-worktree-GHJEIRGL.js} +28 -24
- package/chunks/{exitPlanMode-7CCWKO7I.js → exitPlanMode-JVP4FNNK.js} +28 -24
- package/chunks/{fast-path-DVFD4HQD.js → fast-path-HCCY7GR2.js} +24 -3
- package/chunks/{fast-path-settings-WQJU2LAT.js → fast-path-settings-MN5QQQET.js} +6 -3
- package/chunks/{fr-GK3HQYVB.js → fr-RQFO7U4P.js} +5 -0
- package/chunks/{gemini-7FWGOYD4.js → gemini-V3YVRKXU.js} +85 -72
- package/chunks/{geminiContentGenerator-V2WVLIXU.js → geminiContentGenerator-LVPMQUWX.js} +1 -1
- package/chunks/{glob-3N6GGI75.js → glob-7HRXHYDR.js} +28 -24
- package/chunks/{goal-tools-APOW6UXL.js → goal-tools-PXWN5VK3.js} +4 -2
- package/chunks/{grep-V43ILZVX.js → grep-BITQUON5.js} +28 -24
- package/chunks/{handleAutoUpdate-A5WFVWIA.js → handleAutoUpdate-DKFY454S.js} +32 -28
- package/chunks/{i18n-PLVQ4FBZ.js → i18n-53BQIQSH.js} +29 -25
- package/chunks/{image-gen-7C6IK6DC.js → image-gen-H62FLDFB.js} +7 -5
- package/chunks/{initializer-CVAIKZYL.js → initializer-Q7NUQRSU.js} +35 -31
- package/chunks/{installationInfo-J6QDHNTK.js → installationInfo-BWFHT7WU.js} +29 -25
- package/chunks/{ja-3FA46IKD.js → ja-KOZKHJHZ.js} +5 -0
- package/chunks/{list-ZZ4OUUWV.js → list-OWQKR6JK.js} +38 -34
- package/chunks/{list-agents-KFFIIS2G.js → list-agents-Z4WABFDZ.js} +1 -1
- package/chunks/{loadedSettingsAdapter-QRYRJSWL.js → loadedSettingsAdapter-HNPKQMFA.js} +35 -31
- package/chunks/{loggingContentGenerator-OJCO75HM.js → loggingContentGenerator-A5I3VQUC.js} +10 -8
- package/chunks/{loop-wakeup-TLMJPMMP.js → loop-wakeup-UZ5RL5Y2.js} +2 -2
- package/chunks/{ls-UVVE2XGE.js → ls-TVHDGIES.js} +1 -1
- package/chunks/{lsp-QMEA2VLB.js → lsp-CVN6OQPI.js} +1 -1
- package/chunks/main-PXAUXNF2.js +8 -0
- package/chunks/{managed-npm-update-PCOSCP2N.js → managed-npm-update-CUUJGUTV.js} +29 -25
- package/chunks/{mcp-M3WKKWKY.js → mcp-GJSC7ZPO.js} +35 -31
- package/chunks/{monitor-GN24FH6C.js → monitor-TZ2II7JM.js} +38 -30
- package/chunks/{nonInteractiveCli-KPTU3VSQ.js → nonInteractiveCli-22RS4EVH.js} +72 -66
- package/chunks/{notebook-edit-4YM65BBO.js → notebook-edit-YZC3YPY2.js} +36 -24
- package/chunks/{openaiContentGenerator-EDQT6GTV.js → openaiContentGenerator-OIGO5XNF.js} +21 -11
- package/chunks/{pidfile-JOIIRN2C.js → pidfile-QJQ65RJ2.js} +28 -24
- package/chunks/{process-registry-2CHQBXH5.js → process-registry-PMJOA5CO.js} +15 -0
- package/chunks/{processUtils-5SV4MX3Q.js → processUtils-V5VSDIKS.js} +2 -2
- package/chunks/{pt-3AOBKPIJ.js → pt-U6AOCTMF.js} +5 -0
- package/chunks/{qwenContentGenerator-ODRJSUGR.js → qwenContentGenerator-HXM25BGB.js} +35 -30
- package/chunks/{qwenOAuth2-NESCMZ47.js → qwenOAuth2-7MTMS2Z5.js} +7 -5
- package/chunks/{read-file-HPSODLPK.js → read-file-PMGXB3ZB.js} +8 -6
- package/chunks/{read-mcp-resource-2TNSJTC3.js → read-mcp-resource-PZ4ZF6YL.js} +1 -1
- package/chunks/{record-artifact-RAON52FC.js → record-artifact-P4HFMS7X.js} +2 -2
- package/chunks/{resumeHistoryUtils-TXCOFFMQ.js → resumeHistoryUtils-YUTPLHUH.js} +33 -29
- package/chunks/{ripGrep-ZKQGTQAO.js → ripGrep-XUS66YIV.js} +28 -24
- package/chunks/{ru-VJRAMC4W.js → ru-CMX4UMYP.js} +5 -0
- package/chunks/{run-qwen-serve-ZPKPKECF.js → run-qwen-serve-4NVSU75L.js} +261 -62
- package/chunks/{runtime-2FLNNM36.js → runtime-QLRVP6HM.js} +40 -36
- package/chunks/{scheduler-365PJHNR.js → scheduler-PBB2NSOP.js} +28 -24
- package/chunks/{sdk-exporters-http-KHAB5JSD.js → sdk-exporters-http-XVTZQRCE.js} +2 -2
- package/chunks/{sdk-impl-KD7FSTC3.js → sdk-impl-7W7AKCS4.js} +7 -3
- package/chunks/{send-message-ZM7MRUGP.js → send-message-CAMSLG2L.js} +4 -3
- package/chunks/{serve-QD2RNLKJ.js → serve-BWKTRX72.js} +37 -31
- package/chunks/{server-XLJVLTYM.js → server-E7CH7WPK.js} +1437 -593
- package/chunks/{session-3VTUHH4Q.js → session-QEKSJ6YU.js} +166 -105
- package/chunks/{settings-KULVPCQC.js → settings-BRAOSJIM.js} +34 -30
- package/chunks/{shell-3SWW22MH.js → shell-OF3CK4AT.js} +28 -24
- package/chunks/{skill-KDHWYS7W.js → skill-HLH2NO2H.js} +9 -7
- package/chunks/{skill-settings-NMY4JEJC.js → skill-settings-DRPU7YI5.js} +34 -30
- package/chunks/{spawnChannel-ZKS4Q5OU.js → spawnChannel-4KO7YTFM.js} +31 -27
- package/chunks/{standalone-update-7CXPGAQ4.js → standalone-update-DJN2R3YW.js} +30 -26
- package/chunks/{startInteractiveUI-2QQLEKM6.js → startInteractiveUI-O3WQQ2WC.js} +384 -173
- package/chunks/{syntheticOutput-ZLCUTKO2.js → syntheticOutput-PEBJQYJV.js} +2 -2
- package/chunks/{task-create-CQP5UEA3.js → task-create-5NWCQSJF.js} +5 -4
- package/chunks/{task-list-XLEZOJXP.js → task-list-53265TRZ.js} +1 -1
- package/chunks/{task-stop-7ZQM5CFF.js → task-stop-FPCOIRYX.js} +1 -1
- package/chunks/{task-update-JA75U2SN.js → task-update-5HN577LS.js} +5 -4
- package/chunks/{team-create-2WTNGAOX.js → team-create-2E4ACBJD.js} +28 -24
- package/chunks/{team-delete-MHY3UZGY.js → team-delete-MMQB4OSC.js} +1 -1
- package/chunks/{team-plan-approval-LZTYLEG4.js → team-plan-approval-LWIDXYOA.js} +28 -24
- package/chunks/{terminal-image-renderer-R5HHAFJN.js → terminal-image-renderer-PJM7663W.js} +30 -26
- package/chunks/{theme-manager-PAUCSJFF.js → theme-manager-FDQTM3RP.js} +28 -24
- package/chunks/{todoWrite-UPVOHYGD.js → todoWrite-JGV6VLOX.js} +1 -1
- package/chunks/{tool-search-2BFCGLI6.js → tool-search-TL5ZXBF4.js} +11 -8
- package/chunks/{total-session-admission-MK4SINFK.js → total-session-admission-LS6EY5KT.js} +37 -32
- package/chunks/{trustedFolders-TJ5S26N7.js → trustedFolders-5RWP5OB7.js} +32 -26
- package/chunks/{types-ML3TRJQ5.js → types-WYCFCEHR.js} +5 -3
- package/chunks/{update-relaunch-N7AYLARF.js → update-relaunch-HWQ4USKY.js} +5 -5
- package/chunks/{updateCheck-QRZ3DVT5.js → updateCheck-EZMBTEIR.js} +31 -27
- package/chunks/{useAutoAcceptIndicator-DBJ7Y5AF.js → useAutoAcceptIndicator-JDMI627A.js} +37 -33
- package/chunks/{validateNonInterActiveAuth-6ZQWUDS3.js → validateNonInterActiveAuth-RRUHC5RO.js} +67 -63
- package/chunks/{version-AJQGQWXC.js → version-XS4UTKUX.js} +1 -1
- package/chunks/{web-fetch-QWJYRXFL.js → web-fetch-2JV7H6OM.js} +14 -10
- package/chunks/{web-search-2AOXJGHU.js → web-search-RCTN2GAM.js} +10 -7
- package/chunks/{workflow-ERH3SJG2.js → workflow-6MKLKQ6R.js} +909 -273
- package/chunks/{workspace-providers-status-HZ474RA4.js → workspace-providers-status-YZ2IJ4DK.js} +38 -34
- package/chunks/{workspace-registration-store-6EUP4JXG.js → workspace-registration-store-IYN72LBS.js} +1 -1
- package/chunks/{workspace-registry-R4APRRNC.js → workspace-registry-7LFBZQLT.js} +37 -32
- package/chunks/{workspace-service-HFIFDMU7.js → workspace-service-2EHSPRJB.js} +45 -39
- package/chunks/{workspace-skills-status-HAHEIHGK.js → workspace-skills-status-5VJ2D5HN.js} +36 -32
- package/chunks/{workspace-trust-reconciler-65GTAGDK.js → workspace-trust-reconciler-X2LZ6XCI.js} +44 -39
- package/chunks/{write-file-B34CDELV.js → write-file-CJK6SCCF.js} +28 -24
- package/chunks/{zh-ARWDLDLR.js → zh-AGL2FVBI.js} +6 -0
- package/chunks/{zh-TW-Y4RGI3P7.js → zh-TW-KI66MHQY.js} +6 -0
- package/chunks/{zoom-image-HPRBZHSS.js → zoom-image-BVW4RFYW.js} +8 -6
- package/cli.js +13 -13
- package/locales/ca.js +10 -0
- package/locales/de.js +9 -0
- package/locales/en.js +10 -0
- package/locales/fr.js +9 -0
- package/locales/ja.js +9 -0
- package/locales/pt.js +9 -0
- package/locales/ru.js +9 -0
- package/locales/zh-TW.js +10 -0
- package/locales/zh.js +10 -0
- package/package.json +3 -3
- package/web-shell/assets/{arc-Ip-FFDJ0.js → arc-DDtoJrAW.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-CChqgwIb.js → architectureDiagram-3BPJPVTR-BAInIW4O.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-BHN-Tfss.js → blockDiagram-GPEHLZMM-ChPDk7fP.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-BhyjzDjN.js → c4Diagram-AAUBKEIU-Cd9BJuUy.js} +1 -1
- package/web-shell/assets/channel-0OQklTfP.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-BB9eyHrx.js → chunk-2J33WTMH-COQkLp56.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-BeV7ce_J.js → chunk-4BX2VUAB-GUJshQ_l.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-DO7kXDiV.js → chunk-55IACEB6-Boaa7c10.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-B27MPznD.js → chunk-727SXJPM-CcRXaly2.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-DHIjqjD_.js → chunk-AQP2D5EJ-BY0OARHh.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-DabMqyN2.js → chunk-FMBD7UC4-DLFQfv0S.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-Dw7Nnnxc.js → chunk-ND2GUHAM-C_S0u-D2.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-DdaZew1Q.js → chunk-QZHKN3VN-DP9m64hw.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-CZ4-apsu.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CZ4-apsu.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-CgBpCYH5.js → cose-bilkent-S5V4N54A-CGY6zGE1.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-BB4IU8G0.js → dagre-BM42HDAG-yB7whKNn.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-BcUTHU37.js → diagram-2AECGRRQ-Bdlc59La.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-B6Lyihyv.js → diagram-5GNKFQAL-BUClP18L.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-CRIJOjpG.js → diagram-KO2AKTUF-aZm08kjn.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-DdNiwWWT.js → diagram-LMA3HP47-7DGwEkxC.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-Dz4b32Do.js → diagram-OG6HWLK6-CAGKayxx.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-D-8NGw77.js → erDiagram-TEJ5UH35-CptoHHQi.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-Dun26LyM.js → flowDiagram-I6XJVG4X-CNOH0s7Q.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-F10Hu1Gc.js → ganttDiagram-6RSMTGT7-CCQuCU3y.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-Bf8Ez6-D.js → gitGraphDiagram-PVQCEYII-B7gv9f4E.js} +1 -1
- package/web-shell/assets/{index-BXqw-nGq.js → index-BoUPVvpf.js} +1 -1
- package/web-shell/assets/index-D1YQXYsB.css +5 -0
- package/web-shell/assets/index-J4N7zCmU.js +1768 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-DVgTMLvj.js → infoDiagram-5YYISTIA-Bb3KYEbR.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-uT-KepvK.js → ishikawaDiagram-YF4QCWOH-DWEzbAGi.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-Vg_XadQf.js → journeyDiagram-JHISSGLW-CmxwEqeb.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-Dyv1ESBE.js → kanban-definition-UN3LZRKU-Ci0gDD8O.js} +1 -1
- package/web-shell/assets/{linear-BMIepYX3.js → linear-BqxZqGhS.js} +1 -1
- package/web-shell/assets/{mermaid.core-zA8pJ9ag.js → mermaid.core-BDAFffHv.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-BCW_BZ_5.js → mindmap-definition-RKZ34NQL-Btvx-xvS.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-DseNEGp2.js → pieDiagram-4H26LBE5-CKAg7yG7.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-6Z7wr1Fi.js → quadrantDiagram-W4KKPZXB-DIt8E1mC.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-CVOlCRPf.js → requirementDiagram-4Y6WPE33-BA7mQWQJ.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-CGhgrUJZ.js → sankeyDiagram-5OEKKPKP-D0JppnVU.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-dlqmpLuQ.js → sequenceDiagram-3UESZ5HK-29DIQFjB.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-B9EW10Xb.js → stateDiagram-AJRCARHV-iiXMdK--.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CEGK3l80.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-BBRh0mgZ.js → timeline-definition-PNZ67QCA-CeF7ngSW.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-B8Gs-REP.js → vennDiagram-CIIHVFJN-Beilq8D6.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-D_y80Ur7.js → wardley-L42UT6IY-DOYjY4zO.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-D-CNfHJ-.js → wardleyDiagram-YWT4CUSO-Dtqp8o18.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-DQ5CvELo.js → xychartDiagram-2RQKCTM6-cdAc0Dfv.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/chunk-6PEXNQTX.js +0 -68
- package/chunks/chunk-IUFV6FYU.js +0 -81
- package/chunks/chunk-RXFQM6FQ.js +0 -42
- package/web-shell/assets/channel-Cu8qd6OB.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-BI3KrXhq.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BI3KrXhq.js +0 -1
- package/web-shell/assets/index-QQlUCJGg.css +0 -5
- package/web-shell/assets/index-hcgjV7vS.js +0 -1768
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CJTZJJ5X.js +0 -1
- package/chunks/{anthropicContentGenerator-DTMVEL5M.js → anthropicContentGenerator-SSFE2753.js} +9 -9
- /package/chunks/{chunk-VXZBKKQR.js → chunk-NTTBXH7U.js} +0 -0
- /package/chunks/{chunk-GRC5HGPI.js → chunk-OIBUG24X.js} +0 -0
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
// Force strict mode and setup for ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
init_esbuild_shims
|
|
5
|
+
} from "./chunk-5O2XNYP6.js";
|
|
6
|
+
import {
|
|
7
|
+
__name
|
|
8
|
+
} from "./chunk-J2S4EL5Y.js";
|
|
9
|
+
|
|
10
|
+
// packages/cli/src/commands/channel/channel-registry.ts
|
|
11
|
+
init_esbuild_shims();
|
|
12
|
+
var registry = /* @__PURE__ */ new Map();
|
|
13
|
+
var builtinsPromise = null;
|
|
14
|
+
var UNSAFE_OBJECT_KEYS = /* @__PURE__ */ new Set([
|
|
15
|
+
"__proto__",
|
|
16
|
+
"constructor",
|
|
17
|
+
"prototype"
|
|
18
|
+
]);
|
|
19
|
+
var FIELD_KINDS = /* @__PURE__ */ new Set([
|
|
20
|
+
"string",
|
|
21
|
+
"secret",
|
|
22
|
+
"boolean",
|
|
23
|
+
"number",
|
|
24
|
+
"enum",
|
|
25
|
+
"string-list",
|
|
26
|
+
"record",
|
|
27
|
+
"object"
|
|
28
|
+
]);
|
|
29
|
+
function assertManagementFields(fields, parentPath, nested = false) {
|
|
30
|
+
const seen = /* @__PURE__ */ new Set();
|
|
31
|
+
for (const field of fields) {
|
|
32
|
+
const path = parentPath ? `${parentPath}.${field.key}` : field.key;
|
|
33
|
+
if (typeof field.key !== "string" || field.key.length === 0) {
|
|
34
|
+
throw new Error(
|
|
35
|
+
`Channel field "${path}" must declare a non-empty string key.`
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
if (seen.has(field.key)) {
|
|
39
|
+
throw new Error(`Channel field "${path}" is declared more than once.`);
|
|
40
|
+
}
|
|
41
|
+
seen.add(field.key);
|
|
42
|
+
assertManagementField(field, path, nested);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
__name(assertManagementFields, "assertManagementFields");
|
|
46
|
+
function assertManagementField(field, path, nested) {
|
|
47
|
+
if (!FIELD_KINDS.has(field.kind)) {
|
|
48
|
+
throw new Error(
|
|
49
|
+
`Channel field "${path}" declares an unknown kind "${field.kind}".`
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
if (UNSAFE_OBJECT_KEYS.has(field.key)) {
|
|
53
|
+
throw new Error(`Channel field "${path}" cannot use a reserved key.`);
|
|
54
|
+
}
|
|
55
|
+
if (!nested && field.key === "type") {
|
|
56
|
+
throw new Error(
|
|
57
|
+
`Channel field "${path}" cannot use the reserved key "type".`
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
if (typeof field.label !== "string" || field.label.length === 0) {
|
|
61
|
+
throw new Error(`Channel field "${path}" must declare a string label.`);
|
|
62
|
+
}
|
|
63
|
+
if (field.description !== void 0 && typeof field.description !== "string") {
|
|
64
|
+
throw new Error(
|
|
65
|
+
`Channel field "${path}" must declare a string description.`
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
if (field.default !== void 0 && typeof field.default !== "string") {
|
|
69
|
+
throw new Error(`Channel field "${path}" must declare a string default.`);
|
|
70
|
+
}
|
|
71
|
+
const envResolvable = Boolean(field.envResolvable);
|
|
72
|
+
const required = Boolean(field.required);
|
|
73
|
+
if (field.kind === "secret" && nested) {
|
|
74
|
+
throw new Error(`Channel field "${path}" cannot declare a nested secret.`);
|
|
75
|
+
}
|
|
76
|
+
if (envResolvable && (nested || field.kind !== "string" && field.kind !== "secret")) {
|
|
77
|
+
throw new Error(
|
|
78
|
+
`Channel field "${path}" cannot resolve environment references.`
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
const exclusiveMinimum = field.exclusiveMinimum;
|
|
82
|
+
if (exclusiveMinimum !== void 0) {
|
|
83
|
+
if (field.kind !== "number") {
|
|
84
|
+
throw new Error(
|
|
85
|
+
`Channel field "${path}" can only declare exclusiveMinimum on number fields.`
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
if (typeof exclusiveMinimum !== "number" || !Number.isFinite(exclusiveMinimum)) {
|
|
89
|
+
throw new Error(
|
|
90
|
+
`Channel field "${path}" must declare a finite exclusiveMinimum.`
|
|
91
|
+
);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (field.kind === "enum") {
|
|
95
|
+
if (!Array.isArray(field.options) || field.options.length === 0) {
|
|
96
|
+
throw new Error(
|
|
97
|
+
`Channel field "${path}" must declare at least one option.`
|
|
98
|
+
);
|
|
99
|
+
}
|
|
100
|
+
if (field.options.some(
|
|
101
|
+
(option) => typeof option?.value !== "string" || option.value.length === 0
|
|
102
|
+
)) {
|
|
103
|
+
throw new Error(
|
|
104
|
+
`Channel field "${path}" must declare non-empty string option values.`
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
if (new Set(field.options.map((option) => option.value)).size !== field.options.length) {
|
|
108
|
+
throw new Error(
|
|
109
|
+
`Channel field "${path}" declares duplicate option values.`
|
|
110
|
+
);
|
|
111
|
+
}
|
|
112
|
+
if (field.default !== void 0 && !field.options.some((option) => option.value === field.default)) {
|
|
113
|
+
throw new Error(
|
|
114
|
+
`Channel field "${path}" declares a default that is not one of its options.`
|
|
115
|
+
);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
if (field.kind !== "object") return;
|
|
119
|
+
if (required) {
|
|
120
|
+
throw new Error(`Channel field "${path}" cannot be a required object.`);
|
|
121
|
+
}
|
|
122
|
+
if (!Array.isArray(field.properties)) {
|
|
123
|
+
throw new Error(`Channel field "${path}" must declare a properties array.`);
|
|
124
|
+
}
|
|
125
|
+
if (field.properties.length === 0) {
|
|
126
|
+
throw new Error(
|
|
127
|
+
`Channel field "${path}" must declare at least one property.`
|
|
128
|
+
);
|
|
129
|
+
}
|
|
130
|
+
assertManagementFields(field.properties, path, true);
|
|
131
|
+
}
|
|
132
|
+
__name(assertManagementField, "assertManagementField");
|
|
133
|
+
function assertManagementDescriptor(plugin) {
|
|
134
|
+
const management = plugin.management;
|
|
135
|
+
if (management === void 0) return;
|
|
136
|
+
if (management.validateConfig !== void 0 && (typeof management.validateConfig !== "function" || management.validateConfig.constructor.name === "AsyncFunction")) {
|
|
137
|
+
throw new Error(
|
|
138
|
+
"Channel management metadata must declare validateConfig as a synchronous function."
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
if (!Array.isArray(management.fields)) {
|
|
142
|
+
throw new Error("Channel management metadata must declare a fields array.");
|
|
143
|
+
}
|
|
144
|
+
assertManagementFields(management.fields);
|
|
145
|
+
}
|
|
146
|
+
__name(assertManagementDescriptor, "assertManagementDescriptor");
|
|
147
|
+
function ensureBuiltins() {
|
|
148
|
+
if (!builtinsPromise) {
|
|
149
|
+
builtinsPromise = (async () => {
|
|
150
|
+
const labelled = [
|
|
151
|
+
{ name: "telegram", promise: import("./dist-B2CGTW6T.js") },
|
|
152
|
+
{ name: "weixin", promise: import("./dist-6BMOAE3Z.js") },
|
|
153
|
+
{ name: "dingtalk", promise: import("./dist-EZE3V3Q7.js") },
|
|
154
|
+
{ name: "wecom", promise: import("./dist-3NTTUAHT.js") },
|
|
155
|
+
{ name: "feishu", promise: import("./dist-J47AXBZC.js") },
|
|
156
|
+
{ name: "qqbot", promise: import("./dist-OTUO3AS2.js") },
|
|
157
|
+
{ name: "github", promise: import("./dist-Z3CS4OVP.js") },
|
|
158
|
+
{ name: "gitlab", promise: import("./dist-EWW3J4HQ.js") }
|
|
159
|
+
];
|
|
160
|
+
const results = await Promise.allSettled(labelled.map((l) => l.promise));
|
|
161
|
+
for (let i = 0; i < results.length; i++) {
|
|
162
|
+
const result = results[i];
|
|
163
|
+
if (result.status === "fulfilled") {
|
|
164
|
+
registerWithManagementValidation(
|
|
165
|
+
result.value.plugin,
|
|
166
|
+
labelled[i].name
|
|
167
|
+
);
|
|
168
|
+
} else {
|
|
169
|
+
process.stderr.write(
|
|
170
|
+
`[channel-registry] Failed to load "${labelled[i].name}" channel: ${result.reason}
|
|
171
|
+
`
|
|
172
|
+
);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
})();
|
|
176
|
+
}
|
|
177
|
+
return builtinsPromise;
|
|
178
|
+
}
|
|
179
|
+
__name(ensureBuiltins, "ensureBuiltins");
|
|
180
|
+
function registerPlugin(plugin) {
|
|
181
|
+
if (registry.has(plugin.channelType)) {
|
|
182
|
+
throw new Error(
|
|
183
|
+
`Channel type "${plugin.channelType}" is already registered.`
|
|
184
|
+
);
|
|
185
|
+
}
|
|
186
|
+
registerWithManagementValidation(plugin, plugin.channelType);
|
|
187
|
+
}
|
|
188
|
+
__name(registerPlugin, "registerPlugin");
|
|
189
|
+
function registerWithManagementValidation(plugin, label) {
|
|
190
|
+
try {
|
|
191
|
+
assertManagementDescriptor(plugin);
|
|
192
|
+
} catch (error) {
|
|
193
|
+
process.stderr.write(
|
|
194
|
+
`[channel-registry] Invalid management metadata in "${label}" channel: ${error instanceof Error ? error.message : String(error)}
|
|
195
|
+
`
|
|
196
|
+
);
|
|
197
|
+
const stripped = Object.assign(
|
|
198
|
+
Object.create(
|
|
199
|
+
Object.getPrototypeOf(plugin) ?? Object.prototype
|
|
200
|
+
),
|
|
201
|
+
plugin
|
|
202
|
+
);
|
|
203
|
+
Object.defineProperty(stripped, "management", {
|
|
204
|
+
value: void 0,
|
|
205
|
+
writable: true,
|
|
206
|
+
enumerable: true,
|
|
207
|
+
configurable: true
|
|
208
|
+
});
|
|
209
|
+
registry.set(plugin.channelType, stripped);
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
registry.set(plugin.channelType, plugin);
|
|
213
|
+
}
|
|
214
|
+
__name(registerWithManagementValidation, "registerWithManagementValidation");
|
|
215
|
+
async function getPlugin(channelType) {
|
|
216
|
+
await ensureBuiltins();
|
|
217
|
+
return registry.get(channelType);
|
|
218
|
+
}
|
|
219
|
+
__name(getPlugin, "getPlugin");
|
|
220
|
+
async function supportedTypes() {
|
|
221
|
+
await ensureBuiltins();
|
|
222
|
+
return [...registry.keys()];
|
|
223
|
+
}
|
|
224
|
+
__name(supportedTypes, "supportedTypes");
|
|
225
|
+
async function supportedChannelCatalog() {
|
|
226
|
+
await ensureBuiltins();
|
|
227
|
+
return [...registry.values()].map(
|
|
228
|
+
({ channelType, displayName, management }) => ({
|
|
229
|
+
type: channelType,
|
|
230
|
+
displayName,
|
|
231
|
+
manageable: management !== void 0,
|
|
232
|
+
fields: management?.fields ?? []
|
|
233
|
+
})
|
|
234
|
+
);
|
|
235
|
+
}
|
|
236
|
+
__name(supportedChannelCatalog, "supportedChannelCatalog");
|
|
237
|
+
|
|
238
|
+
export {
|
|
239
|
+
UNSAFE_OBJECT_KEYS,
|
|
240
|
+
registerPlugin,
|
|
241
|
+
getPlugin,
|
|
242
|
+
supportedTypes,
|
|
243
|
+
supportedChannelCatalog
|
|
244
|
+
};
|
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
functionResponsePartsToString
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-ZCJBCKL5.js";
|
|
6
6
|
import {
|
|
7
7
|
parseAndFormatApiError
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-47ZUMGGY.js";
|
|
9
9
|
import {
|
|
10
10
|
formatVisionBridgeNoticeDisplay,
|
|
11
11
|
isVisionBridgeNoticeDisplay
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-YGT2AUJ7.js";
|
|
13
13
|
import {
|
|
14
14
|
init_esbuild_shims
|
|
15
15
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
DEFAULT_QWEN_MODEL,
|
|
5
|
+
MAINLINE_CODER_MODEL
|
|
6
|
+
} from "./chunk-F6WFNA7U.js";
|
|
3
7
|
import {
|
|
4
8
|
preloadRuntimeFetchModule
|
|
5
9
|
} from "./chunk-KKBPOU75.js";
|
|
@@ -10,12 +14,6 @@ import {
|
|
|
10
14
|
__name
|
|
11
15
|
} from "./chunk-J2S4EL5Y.js";
|
|
12
16
|
|
|
13
|
-
// packages/core/src/config/models.ts
|
|
14
|
-
init_esbuild_shims();
|
|
15
|
-
var DEFAULT_QWEN_MODEL = "coder-model";
|
|
16
|
-
var DEFAULT_QWEN_EMBEDDING_MODEL = "text-embedding-v4";
|
|
17
|
-
var MAINLINE_CODER_MODEL = "qwen3.7-max";
|
|
18
|
-
|
|
19
17
|
// packages/core/src/core/contentGenerator.ts
|
|
20
18
|
init_esbuild_shims();
|
|
21
19
|
|
|
@@ -407,18 +405,18 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
|
|
|
407
405
|
try {
|
|
408
406
|
if (authType === "openai" /* USE_OPENAI */) {
|
|
409
407
|
loadBaseGenerator = /* @__PURE__ */ __name(async () => {
|
|
410
|
-
const { createOpenAIContentGenerator } = await import("./openaiContentGenerator-
|
|
408
|
+
const { createOpenAIContentGenerator } = await import("./openaiContentGenerator-OIGO5XNF.js");
|
|
411
409
|
return createOpenAIContentGenerator(generatorConfig, config);
|
|
412
410
|
}, "loadBaseGenerator");
|
|
413
411
|
} else if (authType === "qwen-oauth" /* QWEN_OAUTH */) {
|
|
414
|
-
const { getQwenOAuthClient: getQwenOauthClient } = await import("./qwenOAuth2-
|
|
412
|
+
const { getQwenOAuthClient: getQwenOauthClient } = await import("./qwenOAuth2-7MTMS2Z5.js");
|
|
415
413
|
try {
|
|
416
414
|
const qwenClient = await getQwenOauthClient(
|
|
417
415
|
config,
|
|
418
416
|
isInitialAuth ? { requireCachedCredentials: true } : void 0
|
|
419
417
|
);
|
|
420
418
|
loadBaseGenerator = /* @__PURE__ */ __name(async () => {
|
|
421
|
-
const { QwenContentGenerator } = await import("./qwenContentGenerator-
|
|
419
|
+
const { QwenContentGenerator } = await import("./qwenContentGenerator-HXM25BGB.js");
|
|
422
420
|
return new QwenContentGenerator(qwenClient, generatorConfig, config);
|
|
423
421
|
}, "loadBaseGenerator");
|
|
424
422
|
} catch (error) {
|
|
@@ -429,12 +427,12 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
|
|
|
429
427
|
}
|
|
430
428
|
} else if (authType === "anthropic" /* USE_ANTHROPIC */) {
|
|
431
429
|
loadBaseGenerator = /* @__PURE__ */ __name(async () => {
|
|
432
|
-
const { createAnthropicContentGenerator } = await import("./anthropicContentGenerator-
|
|
430
|
+
const { createAnthropicContentGenerator } = await import("./anthropicContentGenerator-SSFE2753.js");
|
|
433
431
|
return createAnthropicContentGenerator(generatorConfig, config);
|
|
434
432
|
}, "loadBaseGenerator");
|
|
435
433
|
} else if (authType === "gemini" /* USE_GEMINI */ || authType === "vertex-ai" /* USE_VERTEX_AI */) {
|
|
436
434
|
loadBaseGenerator = /* @__PURE__ */ __name(async () => {
|
|
437
|
-
const { createGeminiContentGenerator } = await import("./geminiContentGenerator-
|
|
435
|
+
const { createGeminiContentGenerator } = await import("./geminiContentGenerator-LVPMQUWX.js");
|
|
438
436
|
return createGeminiContentGenerator(generatorConfig, config);
|
|
439
437
|
}, "loadBaseGenerator");
|
|
440
438
|
} else {
|
|
@@ -450,7 +448,7 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
|
|
|
450
448
|
try {
|
|
451
449
|
const [baseGenerator, { LoggingContentGenerator }] = await Promise.all([
|
|
452
450
|
loadBaseGenerator(),
|
|
453
|
-
import("./loggingContentGenerator-
|
|
451
|
+
import("./loggingContentGenerator-A5I3VQUC.js")
|
|
454
452
|
]);
|
|
455
453
|
return new LoggingContentGenerator(
|
|
456
454
|
baseGenerator,
|
|
@@ -467,9 +465,6 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
|
|
|
467
465
|
__name(createContentGenerator, "createContentGenerator");
|
|
468
466
|
|
|
469
467
|
export {
|
|
470
|
-
DEFAULT_QWEN_MODEL,
|
|
471
|
-
DEFAULT_QWEN_EMBEDDING_MODEL,
|
|
472
|
-
MAINLINE_CODER_MODEL,
|
|
473
468
|
MODEL_GENERATION_CONFIG_FIELDS,
|
|
474
469
|
PROVIDER_SOURCED_FIELDS,
|
|
475
470
|
AUTH_ENV_MAPPINGS,
|
|
@@ -484,11 +479,11 @@ export {
|
|
|
484
479
|
};
|
|
485
480
|
/**
|
|
486
481
|
* @license
|
|
487
|
-
* Copyright 2025
|
|
482
|
+
* Copyright 2025 Qwen Team
|
|
488
483
|
* SPDX-License-Identifier: Apache-2.0
|
|
489
484
|
*/
|
|
490
485
|
/**
|
|
491
486
|
* @license
|
|
492
|
-
* Copyright 2025
|
|
487
|
+
* Copyright 2025 Google LLC
|
|
493
488
|
* SPDX-License-Identifier: Apache-2.0
|
|
494
489
|
*/
|
|
@@ -2,23 +2,23 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
getExtensionManager
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-TWFFY5BP.js";
|
|
6
6
|
import {
|
|
7
7
|
parseChannelConfig
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-LHEC5V6G.js";
|
|
9
9
|
import {
|
|
10
10
|
getPlugin,
|
|
11
11
|
registerPlugin
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-E2FPSSKP.js";
|
|
13
13
|
import {
|
|
14
14
|
sanitizeLogText
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-DX3RGJMS.js";
|
|
16
16
|
import {
|
|
17
17
|
loadSettings
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-HKI3KHAO.js";
|
|
19
19
|
import {
|
|
20
20
|
hashDaemonWorkspace
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-4TRQPFDP.js";
|
|
22
22
|
import {
|
|
23
23
|
Storage
|
|
24
24
|
} from "./chunk-OIVKILPI.js";
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
|
+
UNSAFE_OBJECT_KEYS,
|
|
4
5
|
getPlugin
|
|
5
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-E2FPSSKP.js";
|
|
6
7
|
import {
|
|
7
8
|
loadSettings,
|
|
8
9
|
saveSettings
|
|
9
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-HKI3KHAO.js";
|
|
10
11
|
import {
|
|
11
12
|
init_esbuild_shims
|
|
12
13
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -50,7 +51,6 @@ function invalidConfig(message) {
|
|
|
50
51
|
return new ChannelSettingsError("channel_settings_invalid_config", message);
|
|
51
52
|
}
|
|
52
53
|
__name(invalidConfig, "invalidConfig");
|
|
53
|
-
var UNSAFE_OBJECT_KEYS = /* @__PURE__ */ new Set(["__proto__", "constructor", "prototype"]);
|
|
54
54
|
function assertSafeChannelName(name) {
|
|
55
55
|
if (UNSAFE_OBJECT_KEYS.has(name)) {
|
|
56
56
|
throw new ChannelSettingsError(
|
|
@@ -108,7 +108,7 @@ function assertSharedField(key, value) {
|
|
|
108
108
|
const enumValues = {
|
|
109
109
|
senderPolicy: /* @__PURE__ */ new Set(["allowlist", "pairing", "open"]),
|
|
110
110
|
dmPolicy: /* @__PURE__ */ new Set(["open", "disabled"]),
|
|
111
|
-
groupPolicy: /* @__PURE__ */ new Set(["disabled", "allowlist", "open"]),
|
|
111
|
+
groupPolicy: /* @__PURE__ */ new Set(["disabled", "allowlist", "pairing", "open"]),
|
|
112
112
|
sessionScope: /* @__PURE__ */ new Set(["user", "thread", "single"]),
|
|
113
113
|
dispatchMode: /* @__PURE__ */ new Set(["steer", "followup", "collect"]),
|
|
114
114
|
blockStreaming: /* @__PURE__ */ new Set(["on", "off"])
|
|
@@ -168,40 +168,101 @@ function assertSharedField(key, value) {
|
|
|
168
168
|
return false;
|
|
169
169
|
}
|
|
170
170
|
__name(assertSharedField, "assertSharedField");
|
|
171
|
-
function
|
|
172
|
-
|
|
171
|
+
function containsUnsafeObjectKey(value) {
|
|
172
|
+
if (Array.isArray(value)) {
|
|
173
|
+
return value.some((item) => containsUnsafeObjectKey(item));
|
|
174
|
+
}
|
|
175
|
+
if (!isRecord(value)) return false;
|
|
176
|
+
return Object.entries(value).some(
|
|
177
|
+
([key, nested]) => UNSAFE_OBJECT_KEYS.has(key) || containsUnsafeObjectKey(nested)
|
|
178
|
+
);
|
|
179
|
+
}
|
|
180
|
+
__name(containsUnsafeObjectKey, "containsUnsafeObjectKey");
|
|
181
|
+
function assertDescriptorValue(field, value, path = field.key, previous) {
|
|
182
|
+
if (field.kind === "object") {
|
|
183
|
+
if (isDeepStrictEqual(previous, value) && !containsUnsafeObjectKey(value)) {
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
if (!isRecord(value)) {
|
|
187
|
+
throw invalidConfig(`Channel field "${path}" has an invalid value.`);
|
|
188
|
+
}
|
|
189
|
+
const previousRecord = isRecord(previous) ? previous : {};
|
|
190
|
+
const properties = new Map(
|
|
191
|
+
field.properties.map((property) => [property.key, property])
|
|
192
|
+
);
|
|
193
|
+
for (const [key, nestedValue] of Object.entries(value)) {
|
|
194
|
+
const property = properties.get(key);
|
|
195
|
+
if (!property) {
|
|
196
|
+
assertPreservedUnknownField(path, key, nestedValue, previousRecord);
|
|
197
|
+
continue;
|
|
198
|
+
}
|
|
199
|
+
assertDescriptorValue(
|
|
200
|
+
property,
|
|
201
|
+
nestedValue,
|
|
202
|
+
`${path}.${key}`,
|
|
203
|
+
Object.hasOwn(previousRecord, key) ? previousRecord[key] : void 0
|
|
204
|
+
);
|
|
205
|
+
}
|
|
206
|
+
assertRequiredFields(field.properties, value, path);
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
const invalidEnvironment = typeof value === "string" && isEnvironmentReference(value) && !field.envResolvable;
|
|
173
210
|
if (invalidEnvironment) {
|
|
174
211
|
throw invalidConfig(
|
|
175
|
-
`Channel field "${
|
|
212
|
+
`Channel field "${path}" does not support environment references.`
|
|
176
213
|
);
|
|
177
214
|
}
|
|
178
|
-
const valid = (field.kind === "string" || field.kind === "secret") && typeof value === "string" && value.length > 0 || field.kind === "boolean" && typeof value === "boolean" || field.kind === "number" && typeof value === "number" && Number.isFinite(value) || field.kind === "enum" && typeof value === "string" && field.options?.some((option) => option.value === value) === true || field.kind === "string-list" && Array.isArray(value) && value.every((item) => typeof item === "string") || field.kind === "record" && isRecord(value) && Object.values(value).every((v) => typeof v === "string");
|
|
215
|
+
const valid = (field.kind === "string" || field.kind === "secret") && typeof value === "string" && value.length > 0 || field.kind === "boolean" && typeof value === "boolean" || field.kind === "number" && typeof value === "number" && Number.isFinite(value) && (field.exclusiveMinimum === void 0 || value > field.exclusiveMinimum) || field.kind === "enum" && typeof value === "string" && field.options?.some((option) => option.value === value) === true || field.kind === "string-list" && Array.isArray(value) && value.every((item) => typeof item === "string") || field.kind === "record" && isRecord(value) && Object.values(value).every((v) => typeof v === "string") && !containsUnsafeObjectKey(value);
|
|
179
216
|
if (!valid) {
|
|
180
|
-
throw invalidConfig(`Channel field "${
|
|
217
|
+
throw invalidConfig(`Channel field "${path}" has an invalid value.`);
|
|
181
218
|
}
|
|
182
219
|
}
|
|
183
220
|
__name(assertDescriptorValue, "assertDescriptorValue");
|
|
221
|
+
function assertRequiredFields(fields, values, path) {
|
|
222
|
+
for (const field of fields) {
|
|
223
|
+
if (!field.required) continue;
|
|
224
|
+
const value = Object.hasOwn(values, field.key) ? values[field.key] : void 0;
|
|
225
|
+
if (value === void 0 || value === null || value === "") {
|
|
226
|
+
const fieldPath = path ? `${path}.${field.key}` : field.key;
|
|
227
|
+
throw invalidConfig(`Channel field "${fieldPath}" is required.`);
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
__name(assertRequiredFields, "assertRequiredFields");
|
|
232
|
+
function assertPreservedUnknownField(path, key, value, previous) {
|
|
233
|
+
const fieldPath = path ? `${path}.${key}` : key;
|
|
234
|
+
if (UNSAFE_OBJECT_KEYS.has(key)) {
|
|
235
|
+
throw invalidConfig(`Channel field "${fieldPath}" is not manageable.`);
|
|
236
|
+
}
|
|
237
|
+
if (containsUnsafeObjectKey(value)) {
|
|
238
|
+
throw invalidConfig(
|
|
239
|
+
`Channel field "${fieldPath}" cannot use a reserved key.`
|
|
240
|
+
);
|
|
241
|
+
}
|
|
242
|
+
if (Object.hasOwn(previous, key) && isDeepStrictEqual(previous[key], value)) {
|
|
243
|
+
return;
|
|
244
|
+
}
|
|
245
|
+
throw invalidConfig(`Channel field "${fieldPath}" is not manageable.`);
|
|
246
|
+
}
|
|
247
|
+
__name(assertPreservedUnknownField, "assertPreservedUnknownField");
|
|
184
248
|
function assertManagedConfig(config, previous, fields) {
|
|
185
249
|
const descriptorFields = new Map(fields.map((field) => [field.key, field]));
|
|
186
250
|
for (const [key, value] of Object.entries(config)) {
|
|
187
251
|
if (key === "type") continue;
|
|
188
252
|
const field = descriptorFields.get(key);
|
|
189
253
|
if (field) {
|
|
190
|
-
assertDescriptorValue(
|
|
254
|
+
assertDescriptorValue(
|
|
255
|
+
field,
|
|
256
|
+
value,
|
|
257
|
+
field.key,
|
|
258
|
+
Object.hasOwn(previous, key) ? previous[key] : void 0
|
|
259
|
+
);
|
|
191
260
|
continue;
|
|
192
261
|
}
|
|
193
262
|
if (assertSharedField(key, value)) continue;
|
|
194
|
-
|
|
195
|
-
throw invalidConfig(`Channel field "${key}" is not manageable.`);
|
|
196
|
-
}
|
|
197
|
-
}
|
|
198
|
-
for (const field of fields) {
|
|
199
|
-
if (!field.required) continue;
|
|
200
|
-
const value = config[field.key];
|
|
201
|
-
if (value === void 0 || value === null || value === "") {
|
|
202
|
-
throw invalidConfig(`Channel field "${field.key}" is required.`);
|
|
203
|
-
}
|
|
263
|
+
assertPreservedUnknownField(void 0, key, value, previous);
|
|
204
264
|
}
|
|
265
|
+
assertRequiredFields(fields, config);
|
|
205
266
|
}
|
|
206
267
|
__name(assertManagedConfig, "assertManagedConfig");
|
|
207
268
|
function validateSecretUpdate(update) {
|
|
@@ -294,9 +355,22 @@ var WorkspaceChannelSettingsStore = class {
|
|
|
294
355
|
if (value !== void 0) nextConfig[key] = value;
|
|
295
356
|
}
|
|
296
357
|
assertManagedConfig(nextConfig, previous, plugin.management.fields);
|
|
297
|
-
|
|
358
|
+
let crossFieldError;
|
|
359
|
+
try {
|
|
360
|
+
crossFieldError = plugin.management.validateConfig?.(nextConfig);
|
|
361
|
+
if (crossFieldError instanceof Promise) {
|
|
362
|
+
void crossFieldError.catch(() => {
|
|
363
|
+
});
|
|
364
|
+
}
|
|
365
|
+
} catch (error) {
|
|
366
|
+
throw invalidConfig(
|
|
367
|
+
`Channel validateConfig failed: ${error instanceof Error ? error.message : String(error)}`
|
|
368
|
+
);
|
|
369
|
+
}
|
|
298
370
|
if (crossFieldError !== void 0) {
|
|
299
|
-
throw invalidConfig(
|
|
371
|
+
throw invalidConfig(
|
|
372
|
+
typeof crossFieldError === "string" ? crossFieldError : "Channel validateConfig must return a string error message."
|
|
373
|
+
);
|
|
300
374
|
}
|
|
301
375
|
const channels = { ...current.channels, [name]: nextConfig };
|
|
302
376
|
const workspaceFile = loadSettings(this.workspaceCwd, {
|
|
@@ -8,14 +8,14 @@ import {
|
|
|
8
8
|
} from "./chunk-Z4X5MTRT.js";
|
|
9
9
|
import {
|
|
10
10
|
STATUS_SCHEMA_VERSION
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-DA4HRSBW.js";
|
|
12
12
|
import {
|
|
13
13
|
loadSettings
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-HKI3KHAO.js";
|
|
15
15
|
import {
|
|
16
16
|
SkillManager,
|
|
17
17
|
isSafeModeEnv
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-47ZUMGGY.js";
|
|
19
19
|
import {
|
|
20
20
|
writeStderrLine
|
|
21
21
|
} from "./chunk-KGJGEEVR.js";
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// Force strict mode and setup for ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
init_esbuild_shims
|
|
5
|
+
} from "./chunk-5O2XNYP6.js";
|
|
6
|
+
|
|
7
|
+
// packages/core/src/config/models.ts
|
|
8
|
+
init_esbuild_shims();
|
|
9
|
+
var DEFAULT_QWEN_MODEL = "coder-model";
|
|
10
|
+
var DEFAULT_QWEN_EMBEDDING_MODEL = "text-embedding-v4";
|
|
11
|
+
var MAINLINE_CODER_MODEL = "qwen3.7-max";
|
|
12
|
+
|
|
13
|
+
export {
|
|
14
|
+
DEFAULT_QWEN_MODEL,
|
|
15
|
+
DEFAULT_QWEN_EMBEDDING_MODEL,
|
|
16
|
+
MAINLINE_CODER_MODEL
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* @license
|
|
20
|
+
* Copyright 2025 Google LLC
|
|
21
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
22
|
+
*/
|
|
@@ -2,18 +2,18 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
appEvents
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-V47QNK5W.js";
|
|
6
6
|
import {
|
|
7
7
|
assembleMcpServers,
|
|
8
8
|
getPendingGatedMcpServers,
|
|
9
9
|
getPromptableMcpServers
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-PNVPFARW.js";
|
|
11
11
|
import {
|
|
12
12
|
getMCPServerStatus
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-YGT2AUJ7.js";
|
|
14
14
|
import {
|
|
15
15
|
require_fast_deep_equal
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-PYQADEFD.js";
|
|
17
17
|
import {
|
|
18
18
|
createDebugLogger
|
|
19
19
|
} from "./chunk-OIVKILPI.js";
|