@qwen-code/qwen-code 0.21.7 → 0.21.8
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 +43 -30
- 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.md +4 -1
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +50 -36
- package/bundled/review/SKILL.md +28 -5
- package/chunks/{MaxSizedBox-ANWZBPTS.js → MaxSizedBox-7PM6BGJ5.js} +26 -22
- package/chunks/{StandaloneSessionPicker-XKS3VU3A.js → StandaloneSessionPicker-3UQHM7GV.js} +44 -40
- package/chunks/{acp-startup-profiler-ORIQ2CCQ.js → acp-startup-profiler-B5BYAMYQ.js} +2 -2
- package/chunks/{acpAgent-KUAZ3GCZ.js → acpAgent-5UWLFV6V.js} +534 -262
- package/chunks/{agent-T6PTGX5R.js → agent-624T2BLO.js} +26 -22
- package/chunks/{agent-headless-PR7YCB7S.js → agent-headless-2EE5J2KX.js} +26 -22
- 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-JENKGFFP.js} +29 -25
- package/chunks/{ca-NYKNH222.js → ca-ZLKAB4K3.js} +6 -0
- package/chunks/{channel-management-service-FSQ7SHYI.js → channel-management-service-DDWUPHMU.js} +19 -10
- package/chunks/{channel-settings-store-35VQVUVV.js → channel-settings-store-SA6JZSPH.js} +34 -30
- package/chunks/{channel-worker-group-JWQK224X.js → channel-worker-group-E67EN3RV.js} +5 -5
- package/chunks/{channel-worker-manager-77E3OXRQ.js → channel-worker-manager-SW4C45CF.js} +5 -5
- package/chunks/{channel-worker-supervisor-62YWUGP2.js → channel-worker-supervisor-5SRD24FG.js} +3 -3
- package/chunks/{chunk-CJXIIILK.js → chunk-2FRY5CRX.js} +1 -1
- package/chunks/{chunk-ZJ3VGYHK.js → chunk-2ILAOM2I.js} +34 -17
- package/chunks/{chunk-6XJMFJ4D.js → chunk-2M4K4KYS.js} +177 -120
- package/chunks/{chunk-CNIID3TV.js → chunk-2UUMVNYT.js} +1 -1
- package/chunks/{chunk-22NBYCPD.js → chunk-3P2LV43B.js} +1 -1
- package/chunks/{chunk-2U3WZGZG.js → chunk-3PY4LPJF.js} +19 -131
- package/chunks/{chunk-SPMY6CX6.js → chunk-3SE7J4DR.js} +3 -3
- package/chunks/{chunk-6UWFTUQL.js → chunk-3WNQOYHQ.js} +66 -22
- package/chunks/{chunk-KXSDEOFU.js → chunk-4ALIARFY.js} +1 -1
- package/chunks/{chunk-D3UEZIQH.js → chunk-4DU3NCHG.js} +48 -55
- package/chunks/{chunk-BGG4MBYD.js → chunk-4PYCZH2V.js} +4 -187
- package/chunks/{chunk-H2UQ2M5Z.js → chunk-4WU6NY7F.js} +96 -22
- package/chunks/{chunk-TLV2IMHR.js → chunk-5ZGR6RKJ.js} +3 -3
- package/chunks/{chunk-3K7FH2KQ.js → chunk-67N6HB5H.js} +1310 -171
- package/chunks/{chunk-EORNAQDT.js → chunk-6TR7CFXH.js} +1 -1
- package/chunks/{chunk-NG2R4N5O.js → chunk-6ZRFAKXK.js} +1 -1
- package/chunks/{chunk-P2AJ7FTI.js → chunk-757GB46F.js} +1 -1
- package/chunks/{chunk-72LNFGUY.js → chunk-77QVBFCU.js} +3 -3
- package/chunks/{chunk-OH2VKQXH.js → chunk-7DVT4LVV.js} +37 -30
- package/chunks/{chunk-KKJJB5X6.js → chunk-7VUERJHS.js} +1503 -815
- package/chunks/{chunk-VOARQPTA.js → chunk-B52AWKBB.js} +65 -21
- package/chunks/{chunk-Y4EWSQF7.js → chunk-BF224XHL.js} +2 -2
- package/chunks/{chunk-PJOBIWUG.js → chunk-BF52U4XJ.js} +1 -1
- package/chunks/{chunk-55LYDVPU.js → chunk-C5VWPTGT.js} +1 -1
- package/chunks/{chunk-W7U4ESW2.js → chunk-CG3WBKJK.js} +1 -1
- package/chunks/chunk-COBO5EBO.js +135 -0
- package/chunks/chunk-CPG6P4GG.js +82 -0
- package/chunks/{chunk-DIEFUBV6.js → chunk-DIWZNWZT.js} +205 -35
- package/chunks/{chunk-AE77C5ZU.js → chunk-DQSDACD2.js} +1 -1
- package/chunks/{chunk-P3LEG54R.js → chunk-DX5W5AON.js} +2 -2
- package/chunks/{chunk-EUQTXRKZ.js → chunk-E4ZBKMSF.js} +5 -5
- package/chunks/{chunk-FPM27XN4.js → chunk-EIVICVHM.js} +4 -4
- package/chunks/{chunk-YHEEE624.js → chunk-EN2TKTFH.js} +1 -1
- package/chunks/chunk-F6WFNA7U.js +22 -0
- package/chunks/{chunk-FZBZSYKU.js → chunk-FN6YXJOP.js} +1 -1
- package/chunks/{chunk-KR4ZSC7K.js → chunk-FWBXMANW.js} +3 -3
- package/chunks/{chunk-LA7YLSR6.js → chunk-FYAXKJK7.js} +327 -67
- package/chunks/{chunk-CSZEXZBE.js → chunk-GBDINRIL.js} +3 -3
- package/chunks/{chunk-SCI7K3GM.js → chunk-GOEVOFQI.js} +19 -10
- package/chunks/{chunk-LEMXGVEP.js → chunk-GQCEQPYQ.js} +3 -3
- package/chunks/{chunk-Y7E5LNLO.js → chunk-GXSNGY5M.js} +1027 -876
- package/chunks/{chunk-6XU3PH66.js → chunk-HA3SAB64.js} +22 -69
- package/chunks/{chunk-Y4NGLFGJ.js → chunk-HUWENAHO.js} +1 -1
- package/chunks/{chunk-3ULCB3NE.js → chunk-HV76SFIA.js} +1 -1
- package/chunks/{chunk-CB2464BK.js → chunk-HWX5HPUG.js} +14 -4
- package/chunks/{chunk-LZC3B5N2.js → chunk-IA7TGCN2.js} +2 -2
- package/chunks/{chunk-RERATVSK.js → chunk-IBYULW65.js} +6 -6
- package/chunks/{chunk-HYRDKNUY.js → chunk-IUQ52YJK.js} +1 -1
- package/chunks/{chunk-TDXGKHDN.js → chunk-IYES5WOT.js} +2 -2
- package/chunks/{chunk-RGSBTHSU.js → chunk-KAQCJO6Y.js} +131 -4
- package/chunks/{chunk-VWOVHOTT.js → chunk-KJZ26VBX.js} +1 -1
- package/chunks/{chunk-6GONZVLS.js → chunk-KKDVZLGL.js} +1 -1
- package/chunks/{chunk-MKVZE4ZJ.js → chunk-KTJFU7RT.js} +3 -2
- package/chunks/{chunk-R574ATRM.js → chunk-M2PNLYGY.js} +41 -0
- package/chunks/{chunk-6EOI4HOK.js → chunk-M3STHEMM.js} +12 -17
- package/chunks/chunk-NGYI5EF5.js +244 -0
- package/chunks/{chunk-ALGGS7UH.js → chunk-NPQ5ZKRP.js} +82 -1
- package/chunks/{chunk-HQB2KUAN.js → chunk-NPUXXRJI.js} +1 -1
- package/chunks/{chunk-QETYKPMG.js → chunk-NVRDQFCX.js} +1 -1
- package/chunks/{chunk-PQBHU2IA.js → chunk-OHKJVAKG.js} +10 -10
- package/chunks/{chunk-CYR3HI5X.js → chunk-OQTXYMKW.js} +2 -2
- package/chunks/{chunk-DBOFL3LQ.js → chunk-PG62DFWD.js} +10 -10
- package/chunks/{chunk-2VSTGY6M.js → chunk-PJRW65JO.js} +1 -1
- package/chunks/{chunk-33ACCIIY.js → chunk-PLFATELK.js} +1 -1
- package/chunks/{chunk-IC4Z6LX6.js → chunk-PYQADEFD.js} +5 -0
- package/chunks/{chunk-MAJS7AT4.js → chunk-QGHSP65Z.js} +2 -2
- package/chunks/{chunk-OHJLEW5J.js → chunk-QQWD7LZV.js} +4 -4
- package/chunks/{chunk-ZXU5UHMI.js → chunk-QXVSWG66.js} +2 -2
- package/chunks/{chunk-E33LOKRA.js → chunk-RPWVIXDB.js} +18 -1
- package/chunks/{chunk-TYKC75AX.js → chunk-S3Y3GBFD.js} +1 -1
- package/chunks/{chunk-7UFKAV7Y.js → chunk-S6HYI3MF.js} +2 -2
- package/chunks/chunk-SAH4BD2J.js +92 -0
- package/chunks/{chunk-OMKQH5C5.js → chunk-SNRT2TJJ.js} +6 -23
- package/chunks/chunk-SR7RZ4MS.js +202 -0
- package/chunks/{chunk-CXE7E23H.js → chunk-TE3ZAJE7.js} +45 -17
- package/chunks/{chunk-S7CV4KO6.js → chunk-TKSZJ5BV.js} +3 -3
- package/chunks/{chunk-3NB7TSE2.js → chunk-U5SLIG7E.js} +1 -1
- package/chunks/chunk-UA5H3DS2.js +203 -0
- package/chunks/{chunk-24ER7UV4.js → chunk-UFALT4LK.js} +1 -1
- package/chunks/{chunk-YJQCUTT2.js → chunk-VWMUDKLC.js} +3 -3
- package/chunks/{chunk-RMH5OWLD.js → chunk-VXZ5HAOV.js} +1 -1
- package/chunks/{chunk-BVWVWGLE.js → chunk-WAUGQKUU.js} +4 -64
- package/chunks/{chunk-SHZYHGQH.js → chunk-WG6542MA.js} +1 -1
- package/chunks/{chunk-5KH532V7.js → chunk-WV5J6Q6N.js} +1 -1
- package/chunks/{chunk-RNVQB725.js → chunk-XHD7CRP2.js} +2 -2
- package/chunks/{chunk-W4B7UBUS.js → chunk-XZKQT2B2.js} +5 -5
- package/chunks/{chunk-6HVUFDS2.js → chunk-Y4TETC74.js} +22 -13
- package/chunks/{chunk-RZHU3ILK.js → chunk-YEF7XEO2.js} +4 -4
- package/chunks/{chunk-RUL4S3K3.js → chunk-YHJFF7KH.js} +146 -45
- package/chunks/{chunk-23RZCH76.js → chunk-YOM7DEGB.js} +3 -3
- package/chunks/{chunk-OFI7IGST.js → chunk-ZCLLJARV.js} +9 -9
- package/chunks/{chunk-GSS34377.js → chunk-ZHA242R4.js} +2 -2
- package/chunks/{chunk-TRLYP7OF.js → chunk-ZPLALRXZ.js} +17 -9
- package/chunks/{chunk-WUC6ZFXO.js → chunk-ZWBUH5UP.js} +1 -1
- package/chunks/{computer-use-KEAPATUY.js → computer-use-ESQYJ3JY.js} +26 -22
- package/chunks/{config-utils-K7SCOWHD.js → config-utils-XQHBJP7G.js} +4 -4
- package/chunks/{contextCommand-ZJA6A5K5.js → contextCommand-CX3YF4ZE.js} +28 -24
- package/chunks/{core-runtime-QMJPWHCI.js → core-runtime-DIAU7JMG.js} +30 -26
- package/chunks/{create-sub-session-DJE6XICH.js → create-sub-session-HDPD6HOA.js} +26 -22
- package/chunks/{create-sub-session-E4PBYXV5.js → create-sub-session-QIDZUOPU.js} +1 -1
- 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-VZBGJUNL.js} +30 -0
- package/chunks/{daemon-status-provider-FSWDPE2G.js → daemon-status-provider-H6O4UQ4F.js} +33 -29
- package/chunks/{daemon-trust-policy-P5L5VFAY.js → daemon-trust-policy-BNUXG6MT.js} +33 -29
- package/chunks/{daemon-trust-policy-monitor-73JYN6ET.js → daemon-trust-policy-monitor-E4EQ7GF4.js} +33 -29
- package/chunks/{de-VL76CPLV.js → de-LIW4XVLN.js} +5 -0
- package/chunks/{deferred-core-runtime-BWRCCFTE.js → deferred-core-runtime-CBMSHPAU.js} +26 -22
- package/chunks/{display-image-O2XFPQTC.js → display-image-NQRSIBXM.js} +2 -2
- package/chunks/{dist-DPPHJAVL.js → dist-EEEQGCZA.js} +918 -142
- package/chunks/{dist-K4WWQBHS.js → dist-HIACTZEK.js} +55 -15
- package/chunks/{dist-3BMEUGTG.js → dist-IRL7WA5Z.js} +1 -1
- package/chunks/{dist-HVBMEYWK.js → dist-KVISB2O2.js} +1 -1
- package/chunks/{dist-KS4O2NKE.js → dist-MBF3I5MX.js} +14 -8
- package/chunks/{dist-SFQ34F4M.js → dist-MKX5OSFF.js} +5 -4
- package/chunks/{dist-7JGAAQSC.js → dist-RCH3I7SS.js} +2 -2
- package/chunks/{dist-C5U4LJKW.js → dist-TUSWNE2I.js} +5 -4
- package/chunks/{earlyInputCapture-L5ST23A6.js → earlyInputCapture-UIOP7OIN.js} +26 -22
- package/chunks/{edit-LHHRFNFK.js → edit-ITMZYFKA.js} +26 -22
- package/chunks/{en-IRJ2WN5T.js → en-SY5GTIGX.js} +6 -0
- package/chunks/{enter-worktree-6NXCRZPF.js → enter-worktree-S4PL5UV6.js} +26 -22
- package/chunks/{enterPlanMode-ZVQT4U7D.js → enterPlanMode-YV52NNJT.js} +26 -22
- package/chunks/{environment-GJ2HWJOS.js → environment-NGOWPRZV.js} +30 -26
- package/chunks/{errors-6RLH3XXC.js → errors-BU26DTDX.js} +28 -24
- package/chunks/{exit-worktree-I2YLUHHY.js → exit-worktree-XRM6LH5F.js} +26 -22
- package/chunks/{exitPlanMode-7CCWKO7I.js → exitPlanMode-ZLI5F7KR.js} +26 -22
- package/chunks/{fast-path-DVFD4HQD.js → fast-path-UJWORIED.js} +23 -3
- package/chunks/{fast-path-settings-WQJU2LAT.js → fast-path-settings-37WQD5B2.js} +6 -3
- package/chunks/{fr-GK3HQYVB.js → fr-RQFO7U4P.js} +5 -0
- package/chunks/{gemini-7FWGOYD4.js → gemini-ZSKNDUMU.js} +77 -65
- package/chunks/{geminiContentGenerator-V2WVLIXU.js → geminiContentGenerator-YGEXOEKD.js} +1 -1
- package/chunks/{glob-3N6GGI75.js → glob-7KZG44BR.js} +26 -22
- package/chunks/{goal-tools-APOW6UXL.js → goal-tools-PXWN5VK3.js} +4 -2
- package/chunks/{grep-V43ILZVX.js → grep-6ZFC7RJ5.js} +26 -22
- package/chunks/{handleAutoUpdate-A5WFVWIA.js → handleAutoUpdate-KSEL3TQS.js} +30 -26
- package/chunks/{i18n-PLVQ4FBZ.js → i18n-ZIUXBW5V.js} +27 -23
- package/chunks/{image-gen-7C6IK6DC.js → image-gen-AUIZJJNK.js} +7 -5
- package/chunks/{initializer-CVAIKZYL.js → initializer-7AHY3N6Q.js} +33 -29
- package/chunks/{installationInfo-J6QDHNTK.js → installationInfo-VGBXMYLY.js} +27 -23
- package/chunks/{ja-3FA46IKD.js → ja-KOZKHJHZ.js} +5 -0
- package/chunks/{list-ZZ4OUUWV.js → list-PSFKQHLB.js} +36 -32
- package/chunks/{list-agents-KFFIIS2G.js → list-agents-Z4WABFDZ.js} +1 -1
- package/chunks/{loadedSettingsAdapter-QRYRJSWL.js → loadedSettingsAdapter-FTMRCTOF.js} +33 -29
- package/chunks/{loggingContentGenerator-OJCO75HM.js → loggingContentGenerator-MZAN52UV.js} +7 -5
- 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/{managed-npm-update-PCOSCP2N.js → managed-npm-update-O4NHK45X.js} +27 -23
- package/chunks/{mcp-M3WKKWKY.js → mcp-6CFP2AYQ.js} +33 -29
- package/chunks/{monitor-GN24FH6C.js → monitor-DAKD6OU4.js} +26 -22
- package/chunks/{nonInteractiveCli-KPTU3VSQ.js → nonInteractiveCli-RC7VIUZL.js} +66 -60
- package/chunks/{notebook-edit-4YM65BBO.js → notebook-edit-474DPMRL.js} +34 -22
- package/chunks/{openaiContentGenerator-EDQT6GTV.js → openaiContentGenerator-2NFY2MWO.js} +19 -9
- package/chunks/{pidfile-JOIIRN2C.js → pidfile-KBFVDNQP.js} +26 -22
- package/chunks/{process-registry-2CHQBXH5.js → process-registry-PMJOA5CO.js} +15 -0
- package/chunks/{processUtils-5SV4MX3Q.js → processUtils-6GRYH4Y3.js} +2 -2
- package/chunks/{pt-3AOBKPIJ.js → pt-U6AOCTMF.js} +5 -0
- package/chunks/{qwenContentGenerator-ODRJSUGR.js → qwenContentGenerator-KAHU6IZY.js} +33 -28
- package/chunks/{qwenOAuth2-NESCMZ47.js → qwenOAuth2-RRQTCP4W.js} +7 -5
- package/chunks/{read-file-HPSODLPK.js → read-file-3M6WXDXP.js} +6 -4
- 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-D6TAY3HX.js} +30 -26
- package/chunks/{ripGrep-ZKQGTQAO.js → ripGrep-PLPENT3E.js} +26 -22
- package/chunks/{ru-VJRAMC4W.js → ru-CMX4UMYP.js} +5 -0
- package/chunks/{run-qwen-serve-ZPKPKECF.js → run-qwen-serve-ZAFIJKJC.js} +168 -54
- package/chunks/{runtime-2FLNNM36.js → runtime-ZED7CYOZ.js} +38 -34
- package/chunks/{scheduler-365PJHNR.js → scheduler-MD3AL2W5.js} +26 -22
- package/chunks/{send-message-ZM7MRUGP.js → send-message-CAMSLG2L.js} +4 -3
- package/chunks/{serve-QD2RNLKJ.js → serve-E3VUDRZN.js} +33 -29
- package/chunks/{server-XLJVLTYM.js → server-OWMEMAKR.js} +450 -231
- package/chunks/{session-3VTUHH4Q.js → session-HZ57QK7K.js} +158 -97
- package/chunks/{settings-KULVPCQC.js → settings-V7BR3RKP.js} +32 -28
- package/chunks/{shell-3SWW22MH.js → shell-23OMNMW6.js} +26 -22
- package/chunks/{skill-KDHWYS7W.js → skill-6HBDYZRS.js} +7 -5
- package/chunks/{skill-settings-NMY4JEJC.js → skill-settings-HWJLTU7M.js} +32 -28
- package/chunks/{spawnChannel-ZKS4Q5OU.js → spawnChannel-N6KKUW5B.js} +27 -23
- package/chunks/{standalone-update-7CXPGAQ4.js → standalone-update-QGIKHATD.js} +28 -24
- package/chunks/{startInteractiveUI-2QQLEKM6.js → startInteractiveUI-GX2CRL42.js} +365 -155
- 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-CFFKU7KL.js} +26 -22
- package/chunks/{team-delete-MHY3UZGY.js → team-delete-MMQB4OSC.js} +1 -1
- package/chunks/{team-plan-approval-LZTYLEG4.js → team-plan-approval-6EFOKR6A.js} +26 -22
- package/chunks/{terminal-image-renderer-R5HHAFJN.js → terminal-image-renderer-TLDNACQY.js} +28 -24
- package/chunks/{theme-manager-PAUCSJFF.js → theme-manager-5LJ3H7VO.js} +26 -22
- package/chunks/{todoWrite-UPVOHYGD.js → todoWrite-JGV6VLOX.js} +1 -1
- package/chunks/{tool-search-2BFCGLI6.js → tool-search-UJV3A24H.js} +9 -6
- package/chunks/{total-session-admission-MK4SINFK.js → total-session-admission-D63QYXGO.js} +29 -25
- package/chunks/{trustedFolders-TJ5S26N7.js → trustedFolders-KZCOB53W.js} +30 -24
- package/chunks/{update-relaunch-N7AYLARF.js → update-relaunch-IFILM3SA.js} +5 -5
- package/chunks/{updateCheck-QRZ3DVT5.js → updateCheck-YZ2CRCFC.js} +29 -25
- package/chunks/{useAutoAcceptIndicator-DBJ7Y5AF.js → useAutoAcceptIndicator-AXEVNA3Q.js} +35 -31
- package/chunks/{validateNonInterActiveAuth-6ZQWUDS3.js → validateNonInterActiveAuth-3WTOJFWA.js} +61 -57
- package/chunks/{version-AJQGQWXC.js → version-GXK7OHZY.js} +1 -1
- package/chunks/{web-fetch-QWJYRXFL.js → web-fetch-ILB4GAVR.js} +12 -8
- package/chunks/{web-search-2AOXJGHU.js → web-search-HKRPGPZZ.js} +8 -6
- package/chunks/{workflow-ERH3SJG2.js → workflow-FXIPRQQA.js} +750 -147
- package/chunks/{workspace-providers-status-HZ474RA4.js → workspace-providers-status-NYHC7HSR.js} +35 -31
- package/chunks/{workspace-registration-store-6EUP4JXG.js → workspace-registration-store-AKEB7OMW.js} +1 -1
- package/chunks/{workspace-registry-R4APRRNC.js → workspace-registry-CDAS5TVZ.js} +29 -25
- package/chunks/{workspace-service-HFIFDMU7.js → workspace-service-PAMUKMAV.js} +36 -32
- package/chunks/{workspace-skills-status-HAHEIHGK.js → workspace-skills-status-YQSHCCMS.js} +33 -29
- package/chunks/{workspace-trust-reconciler-65GTAGDK.js → workspace-trust-reconciler-RPTXOIY2.js} +36 -32
- package/chunks/{write-file-B34CDELV.js → write-file-CGS57TS4.js} +26 -22
- 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-E7D72GYV.js} +6 -4
- 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-DybZaz32.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-CChqgwIb.js → architectureDiagram-3BPJPVTR-jN3qBd19.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-BHN-Tfss.js → blockDiagram-GPEHLZMM-Ct5DZPrj.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-BhyjzDjN.js → c4Diagram-AAUBKEIU-CUAFMlUG.js} +1 -1
- package/web-shell/assets/channel-BMwLrwLW.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-BB9eyHrx.js → chunk-2J33WTMH-CuV8n90B.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-BeV7ce_J.js → chunk-4BX2VUAB-BUzl_kls.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-DO7kXDiV.js → chunk-55IACEB6-BnDBLX6A.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-B27MPznD.js → chunk-727SXJPM-B83uTOjm.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-DHIjqjD_.js → chunk-AQP2D5EJ-DM3HLgpT.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-DabMqyN2.js → chunk-FMBD7UC4-CSQ5hgyb.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-Dw7Nnnxc.js → chunk-ND2GUHAM-BWOF4SxX.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-DdaZew1Q.js → chunk-QZHKN3VN-BsOH9LMi.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-BGDv98jY.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BGDv98jY.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-CgBpCYH5.js → cose-bilkent-S5V4N54A-IENqH2iJ.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-BB4IU8G0.js → dagre-BM42HDAG--dyzDTGo.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-BcUTHU37.js → diagram-2AECGRRQ-BE7Dcqof.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-B6Lyihyv.js → diagram-5GNKFQAL-Cr8-5OTj.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-CRIJOjpG.js → diagram-KO2AKTUF-Bzey3uAY.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-DdNiwWWT.js → diagram-LMA3HP47-sErl28Xb.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-Dz4b32Do.js → diagram-OG6HWLK6-Dq30ATIo.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-D-8NGw77.js → erDiagram-TEJ5UH35-BkCoEfVW.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-Dun26LyM.js → flowDiagram-I6XJVG4X-DHwO0rrI.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-F10Hu1Gc.js → ganttDiagram-6RSMTGT7-s7vAPxWq.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-Bf8Ez6-D.js → gitGraphDiagram-PVQCEYII-CQxhwPOU.js} +1 -1
- package/web-shell/assets/index-Bckpjr-I.css +5 -0
- package/web-shell/assets/{index-BXqw-nGq.js → index-CF4wApWp.js} +1 -1
- package/web-shell/assets/index-DwEr9HEW.js +1768 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-DVgTMLvj.js → infoDiagram-5YYISTIA-BnFrD0bq.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-uT-KepvK.js → ishikawaDiagram-YF4QCWOH-Bf9zK5NK.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-Vg_XadQf.js → journeyDiagram-JHISSGLW-CyGAhsxi.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-Dyv1ESBE.js → kanban-definition-UN3LZRKU-CbsK5akB.js} +1 -1
- package/web-shell/assets/{linear-BMIepYX3.js → linear-cQsF4P8D.js} +1 -1
- package/web-shell/assets/{mermaid.core-zA8pJ9ag.js → mermaid.core-Z4HVqrKY.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-BCW_BZ_5.js → mindmap-definition-RKZ34NQL-CYnrBo_f.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-DseNEGp2.js → pieDiagram-4H26LBE5-CBzOfhrs.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-6Z7wr1Fi.js → quadrantDiagram-W4KKPZXB-D4LK1Ebn.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-CVOlCRPf.js → requirementDiagram-4Y6WPE33-Bzti2Lcj.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-CGhgrUJZ.js → sankeyDiagram-5OEKKPKP-yTBw5Z2s.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-dlqmpLuQ.js → sequenceDiagram-3UESZ5HK-D07UVRiZ.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-B9EW10Xb.js → stateDiagram-AJRCARHV-UE_lHsTn.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DC6xgXjX.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-BBRh0mgZ.js → timeline-definition-PNZ67QCA-DRvYdiTs.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-B8Gs-REP.js → vennDiagram-CIIHVFJN-CQLIXs0u.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-D_y80Ur7.js → wardley-L42UT6IY-JZz_Xqse.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-D-CNfHJ-.js → wardleyDiagram-YWT4CUSO--i7BiJwB.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-DQ5CvELo.js → xychartDiagram-2RQKCTM6-Bkc-bW0S.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/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
|
@@ -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-IRL7WA5Z.js") },
|
|
152
|
+
{ name: "weixin", promise: import("./dist-RCH3I7SS.js") },
|
|
153
|
+
{ name: "dingtalk", promise: import("./dist-HIACTZEK.js") },
|
|
154
|
+
{ name: "wecom", promise: import("./dist-KVISB2O2.js") },
|
|
155
|
+
{ name: "feishu", promise: import("./dist-EEEQGCZA.js") },
|
|
156
|
+
{ name: "qqbot", promise: import("./dist-MKX5OSFF.js") },
|
|
157
|
+
{ name: "github", promise: import("./dist-MBF3I5MX.js") },
|
|
158
|
+
{ name: "gitlab", promise: import("./dist-TUSWNE2I.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
|
+
};
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
getPathComparisonVariants,
|
|
5
|
+
isWithinRoot
|
|
6
|
+
} from "./chunk-MR3PXB6E.js";
|
|
3
7
|
import {
|
|
4
8
|
init_esbuild_shims
|
|
5
9
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -81,6 +85,83 @@ var require_strip_json_comments = __commonJS({
|
|
|
81
85
|
}
|
|
82
86
|
});
|
|
83
87
|
|
|
88
|
+
// packages/cli/src/config/trust-precedence.ts
|
|
89
|
+
init_esbuild_shims();
|
|
90
|
+
import * as path from "node:path";
|
|
91
|
+
function pathDepth(value) {
|
|
92
|
+
const root = path.parse(value).root;
|
|
93
|
+
const relative2 = path.relative(root, value);
|
|
94
|
+
return relative2 === "" ? 0 : relative2.split(path.sep).filter(Boolean).length;
|
|
95
|
+
}
|
|
96
|
+
__name(pathDepth, "pathDepth");
|
|
97
|
+
function matchingDepth(rule, locationVariants) {
|
|
98
|
+
let deepestMatch = -1;
|
|
99
|
+
for (const locationVariant of locationVariants) {
|
|
100
|
+
for (const ruleVariant of rule.variants) {
|
|
101
|
+
if (isWithinRoot(locationVariant, ruleVariant)) {
|
|
102
|
+
deepestMatch = Math.max(deepestMatch, pathDepth(ruleVariant));
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
return deepestMatch;
|
|
107
|
+
}
|
|
108
|
+
__name(matchingDepth, "matchingDepth");
|
|
109
|
+
function buildTrustPrecedenceRules(rules) {
|
|
110
|
+
const result = [];
|
|
111
|
+
for (const rule of rules) {
|
|
112
|
+
let level;
|
|
113
|
+
let rulePath = rule.path;
|
|
114
|
+
switch (rule.trustLevel) {
|
|
115
|
+
case "TRUST_FOLDER":
|
|
116
|
+
level = "trusted";
|
|
117
|
+
break;
|
|
118
|
+
case "TRUST_PARENT":
|
|
119
|
+
level = "trusted";
|
|
120
|
+
rulePath = path.dirname(rule.path);
|
|
121
|
+
break;
|
|
122
|
+
case "DO_NOT_TRUST":
|
|
123
|
+
level = "untrusted";
|
|
124
|
+
break;
|
|
125
|
+
default:
|
|
126
|
+
continue;
|
|
127
|
+
}
|
|
128
|
+
result.push({
|
|
129
|
+
level,
|
|
130
|
+
variants: getPathComparisonVariants(rulePath),
|
|
131
|
+
payload: rule.trustLevel
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
return result;
|
|
135
|
+
}
|
|
136
|
+
__name(buildTrustPrecedenceRules, "buildTrustPrecedenceRules");
|
|
137
|
+
function resolveTrustRule(rules, locationVariants) {
|
|
138
|
+
let winner;
|
|
139
|
+
let winnerDepth = -1;
|
|
140
|
+
for (const rule of rules) {
|
|
141
|
+
const depth = matchingDepth(rule, locationVariants);
|
|
142
|
+
if (depth < 0) continue;
|
|
143
|
+
if (depth > winnerDepth || depth === winnerDepth && rule.level === "untrusted" && winner?.level !== "untrusted") {
|
|
144
|
+
winner = rule;
|
|
145
|
+
winnerDepth = depth;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return winner;
|
|
149
|
+
}
|
|
150
|
+
__name(resolveTrustRule, "resolveTrustRule");
|
|
151
|
+
function resolveTrustDecision(rules, locationVariants) {
|
|
152
|
+
const winner = resolveTrustRule(rules, locationVariants);
|
|
153
|
+
return winner?.level === "trusted" ? true : winner?.level === "untrusted" ? false : void 0;
|
|
154
|
+
}
|
|
155
|
+
__name(resolveTrustDecision, "resolveTrustDecision");
|
|
156
|
+
|
|
84
157
|
export {
|
|
85
|
-
require_strip_json_comments
|
|
158
|
+
require_strip_json_comments,
|
|
159
|
+
buildTrustPrecedenceRules,
|
|
160
|
+
resolveTrustRule,
|
|
161
|
+
resolveTrustDecision
|
|
86
162
|
};
|
|
163
|
+
/**
|
|
164
|
+
* @license
|
|
165
|
+
* Copyright 2026 Qwen Team
|
|
166
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
167
|
+
*/
|
|
@@ -21,23 +21,23 @@ import {
|
|
|
21
21
|
getLanguageNameFromLocale,
|
|
22
22
|
getLanguageSettingsOptions,
|
|
23
23
|
t
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-PG62DFWD.js";
|
|
25
25
|
import {
|
|
26
26
|
getHomeEnvFallbackVars,
|
|
27
27
|
loadEnvironment,
|
|
28
28
|
preResolveHomeEnvOverrides
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-B52AWKBB.js";
|
|
30
30
|
import {
|
|
31
31
|
ENV_CORRUPTED_PATH,
|
|
32
32
|
ENV_WAS_RECOVERED
|
|
33
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-UA5H3DS2.js";
|
|
34
34
|
import {
|
|
35
35
|
isWorkspaceTrusted,
|
|
36
36
|
updateSettingsFilePreservingFormat
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-HA3SAB64.js";
|
|
38
38
|
import {
|
|
39
39
|
require_strip_json_comments
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-NPQ5ZKRP.js";
|
|
41
41
|
import {
|
|
42
42
|
DEFAULT_MAX_SUBAGENT_DEPTH,
|
|
43
43
|
DEFAULT_MAX_TOOL_CALLS_PER_TURN,
|
|
@@ -46,10 +46,10 @@ import {
|
|
|
46
46
|
DEFAULT_TOOL_RESULTS_TOTAL_CHARS_THRESHOLD,
|
|
47
47
|
DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES,
|
|
48
48
|
DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD
|
|
49
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-GXSNGY5M.js";
|
|
50
50
|
import {
|
|
51
51
|
stripRuntimeSnapshotPrefix
|
|
52
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-VXZ5HAOV.js";
|
|
53
53
|
import {
|
|
54
54
|
DEFAULT_QWEN_CUSTOM_IGNORE_FILE_NAMES
|
|
55
55
|
} from "./chunk-EQL65XGA.js";
|
|
@@ -1352,7 +1352,7 @@ var SETTINGS_SCHEMA = {
|
|
|
1352
1352
|
category: "Model",
|
|
1353
1353
|
requiresRestart: false,
|
|
1354
1354
|
default: true,
|
|
1355
|
-
description: "Skip the opt-in streaming loop-detection heuristics (content/thought repetition, read-file and action stagnation, global-duplicate and alternating tool-call patterns). Defaults to true to avoid false-positive interruptions; set to false to re-enable them as an unattended-run guardrail.
|
|
1355
|
+
description: "Skip the opt-in streaming loop-detection heuristics (content/thought repetition, read-file and action stagnation, global-duplicate and alternating tool-call patterns). Defaults to true to avoid false-positive interruptions; set to false to re-enable them as an unattended-run guardrail. Daemon/ACP sessions run none of the other detectors; setting this to false also enables a global-duplicate tool-call halt there. Core-client sessions keep a minimal always-on guard regardless of this setting (consecutive identical tool calls, shell inspection-command stagnation, and a per-turn tool-call cap, see model.maxToolCallsPerTurn); daemon/ACP sessions keep the per-turn tool-call cap and an invalid-tool-params stagnation guard.",
|
|
1356
1356
|
showInDialog: false
|
|
1357
1357
|
},
|
|
1358
1358
|
maxToolCallsPerTurn: {
|
|
@@ -1361,7 +1361,7 @@ var SETTINGS_SCHEMA = {
|
|
|
1361
1361
|
category: "Model",
|
|
1362
1362
|
requiresRestart: false,
|
|
1363
1363
|
default: DEFAULT_MAX_TOOL_CALLS_PER_TURN,
|
|
1364
|
-
description: "Per-turn tool-call cap (one model turn plus its tool-result continuations; blocking Stop-hook continuations such as /goal iterations start a fresh budget). When set explicitly, this value is a hard cap: the turn halts on the next tool call after it is reached (the released behavior). When left unset (default 100), the cap is adaptive: once the turn exceeds 100 it halts only when the model keeps repeating the same call (a stuck loop); a productive turn (diverse calls) continues up to a hard backstop of 1000, which always halts. The adaptive default applies to
|
|
1364
|
+
description: "Per-turn tool-call cap (one model turn plus its tool-result continuations; blocking Stop-hook continuations such as /goal iterations start a fresh budget). When set explicitly, this value is a hard cap: the turn halts on the next tool call after it is reached (the released behavior). When left unset (default 100), the cap is adaptive: once the turn exceeds 100 it halts only when the model keeps repeating the same call (a stuck loop); a productive turn (diverse calls) continues up to a hard backstop of 1000, which always halts. The adaptive default applies to the interactive TUI, non-interactive (-p / JSON / stream-JSON) core-client runs, and daemon/ACP sessions alike. Daemon/ACP sessions evaluate the cap once per tool batch, before execution: a batch that would cross an explicit cap or the hard backstop is skipped whole, so a turn never executes past either (it can halt up to one batch short), while the adaptive soft cap is exceeded by design, up to the backstop. They also have no in-session disable. An always-on circuit breaker against runaway turns, independent of model.skipLoopDetection. Set to 0 or a negative value to disable the cap.",
|
|
1365
1365
|
showInDialog: false
|
|
1366
1366
|
},
|
|
1367
1367
|
skipStartupContext: {
|
|
@@ -1448,7 +1448,7 @@ var SETTINGS_SCHEMA = {
|
|
|
1448
1448
|
category: "Generation Configuration",
|
|
1449
1449
|
requiresRestart: false,
|
|
1450
1450
|
default: true,
|
|
1451
|
-
description: "Enable cache
|
|
1451
|
+
description: "Enable provider prompt-cache controls.",
|
|
1452
1452
|
parentKey: "generationConfig",
|
|
1453
1453
|
showInDialog: false
|
|
1454
1454
|
},
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
import {
|
|
7
7
|
getPlanRequiredTeammatePreApprovalMessage,
|
|
8
8
|
isPlanRequiredTeammateAwaitingApproval
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-WAUGQKUU.js";
|
|
10
10
|
import {
|
|
11
11
|
resolveActiveTeamName
|
|
12
12
|
} from "./chunk-S6LOFUVP.js";
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
BaseToolInvocation,
|
|
16
16
|
ToolDisplayNames,
|
|
17
17
|
ToolNames
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-PYQADEFD.js";
|
|
19
19
|
import {
|
|
20
20
|
init_esbuild_shims
|
|
21
21
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
resolveBundleDir
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-GXSNGY5M.js";
|
|
6
6
|
import {
|
|
7
7
|
Storage
|
|
8
8
|
} from "./chunk-OIVKILPI.js";
|
|
@@ -272,15 +272,15 @@ var MUST_TRANSLATE_KEYS = [
|
|
|
272
272
|
|
|
273
273
|
// import("./locales/**/*.js") in packages/cli/src/i18n/index.ts
|
|
274
274
|
var globImport_locales_js = __glob({
|
|
275
|
-
"./locales/ca.js": () => import("./ca-
|
|
276
|
-
"./locales/de.js": () => import("./de-
|
|
277
|
-
"./locales/en.js": () => import("./en-
|
|
278
|
-
"./locales/fr.js": () => import("./fr-
|
|
279
|
-
"./locales/ja.js": () => import("./ja-
|
|
280
|
-
"./locales/pt.js": () => import("./pt-
|
|
281
|
-
"./locales/ru.js": () => import("./ru-
|
|
282
|
-
"./locales/zh-TW.js": () => import("./zh-TW-
|
|
283
|
-
"./locales/zh.js": () => import("./zh-
|
|
275
|
+
"./locales/ca.js": () => import("./ca-ZLKAB4K3.js"),
|
|
276
|
+
"./locales/de.js": () => import("./de-LIW4XVLN.js"),
|
|
277
|
+
"./locales/en.js": () => import("./en-SY5GTIGX.js"),
|
|
278
|
+
"./locales/fr.js": () => import("./fr-RQFO7U4P.js"),
|
|
279
|
+
"./locales/ja.js": () => import("./ja-KOZKHJHZ.js"),
|
|
280
|
+
"./locales/pt.js": () => import("./pt-U6AOCTMF.js"),
|
|
281
|
+
"./locales/ru.js": () => import("./ru-CMX4UMYP.js"),
|
|
282
|
+
"./locales/zh-TW.js": () => import("./zh-TW-KI66MHQY.js"),
|
|
283
|
+
"./locales/zh.js": () => import("./zh-AGL2FVBI.js")
|
|
284
284
|
});
|
|
285
285
|
|
|
286
286
|
// packages/cli/src/i18n/index.ts
|
|
@@ -15686,6 +15686,10 @@ var ToolNamesMigration = {
|
|
|
15686
15686
|
task: ToolNames.AGENT
|
|
15687
15687
|
// Legacy name from agent tool (renamed from task)
|
|
15688
15688
|
};
|
|
15689
|
+
function canonicalToolName(toolName) {
|
|
15690
|
+
return ToolNamesMigration[toolName] ?? toolName;
|
|
15691
|
+
}
|
|
15692
|
+
__name(canonicalToolName, "canonicalToolName");
|
|
15689
15693
|
var ToolDisplayNamesMigration = {
|
|
15690
15694
|
SearchFiles: ToolDisplayNames.GREP,
|
|
15691
15695
|
// Old display name for Grep
|
|
@@ -15718,6 +15722,7 @@ export {
|
|
|
15718
15722
|
ToolNames,
|
|
15719
15723
|
ToolDisplayNames,
|
|
15720
15724
|
ToolNamesMigration,
|
|
15725
|
+
canonicalToolName,
|
|
15721
15726
|
ToolDisplayNamesMigration
|
|
15722
15727
|
};
|
|
15723
15728
|
/**
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
MODIFIER_SHIFT_BIT,
|
|
17
17
|
MODIFIER_SUPER_BIT,
|
|
18
18
|
clipboardHasImage
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-EN2TKTFH.js";
|
|
20
20
|
import {
|
|
21
21
|
noteInteraction
|
|
22
22
|
} from "./chunk-KW7NOTN6.js";
|
|
@@ -33,7 +33,7 @@ import {
|
|
|
33
33
|
import {
|
|
34
34
|
KittySequenceOverflowEvent,
|
|
35
35
|
logKittySequenceOverflow
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-3PY4LPJF.js";
|
|
37
37
|
import {
|
|
38
38
|
createDebugLogger
|
|
39
39
|
} from "./chunk-OIVKILPI.js";
|
|
@@ -5,21 +5,21 @@ import {
|
|
|
5
5
|
} from "./chunk-57OAHC2Y.js";
|
|
6
6
|
import {
|
|
7
7
|
loadSettings
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-OHKJVAKG.js";
|
|
9
9
|
import {
|
|
10
10
|
getCurrentLanguage,
|
|
11
11
|
t
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-PG62DFWD.js";
|
|
13
13
|
import {
|
|
14
14
|
isWorkspaceTrusted
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-HA3SAB64.js";
|
|
16
16
|
import {
|
|
17
17
|
ExtensionManager,
|
|
18
18
|
getExtensionDescription,
|
|
19
19
|
getExtensionDisplayName,
|
|
20
20
|
redactUrlCredentials,
|
|
21
21
|
require_prompts
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-GXSNGY5M.js";
|
|
23
23
|
import {
|
|
24
24
|
stripAnsi
|
|
25
25
|
} from "./chunk-TWPJO254.js";
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
resolveChannelCwd
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-KJZ26VBX.js";
|
|
6
6
|
import {
|
|
7
7
|
getPlugin,
|
|
8
8
|
supportedTypes
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-NGYI5EF5.js";
|
|
10
10
|
import {
|
|
11
11
|
init_esbuild_shims
|
|
12
12
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -190,6 +190,21 @@ var ProcessRegistry = class {
|
|
|
190
190
|
get activeProcessCount() {
|
|
191
191
|
return this.children.size;
|
|
192
192
|
}
|
|
193
|
+
/**
|
|
194
|
+
* Children this registry has committed to: attached ones plus reservations
|
|
195
|
+
* that have not attached yet. Larger than {@link activeProcessCount}, and
|
|
196
|
+
* the right figure for admission — `reserve()` inserts its token
|
|
197
|
+
* synchronously before `spawn()`, so two racing spawns each see the other
|
|
198
|
+
* here, while neither is visible in `activeProcessCount` until its child is
|
|
199
|
+
* attached.
|
|
200
|
+
*
|
|
201
|
+
* A child leaves this count when it *exits*, not when `terminate()` starts,
|
|
202
|
+
* so a channel swap is counted twice while the old process is still winding
|
|
203
|
+
* down. That is deliberate: its memory is still resident.
|
|
204
|
+
*/
|
|
205
|
+
get committedProcessCount() {
|
|
206
|
+
return this.children.size + this.reservations.size;
|
|
207
|
+
}
|
|
193
208
|
};
|
|
194
209
|
var TrackedChild = class {
|
|
195
210
|
constructor(child, onExit) {
|
|
@@ -332,13 +347,15 @@ function createSpawnChannelFactory(options = {}) {
|
|
|
332
347
|
childEnvOverrides
|
|
333
348
|
);
|
|
334
349
|
childEnv["QWEN_CODE_NO_RELAUNCH"] = "true";
|
|
335
|
-
|
|
350
|
+
childEnv["QWEN_CODE_SERVE"] = "1";
|
|
336
351
|
const execArgs = process.execArgv.filter(
|
|
337
352
|
(a) => !/^--inspect(-brk)?($|=)/.test(a)
|
|
338
353
|
);
|
|
339
354
|
const reservation = processRegistry.reserve();
|
|
340
355
|
let child;
|
|
341
356
|
try {
|
|
357
|
+
options.childHeapPolicy?.decide(processRegistry.committedProcessCount);
|
|
358
|
+
const memoryArgs = getAcpMemoryArgs();
|
|
342
359
|
child = spawn(
|
|
343
360
|
process.execPath,
|
|
344
361
|
[
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
MAX_INLINE_IMAGE_ENCODED_LENGTH
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-PJRW65JO.js";
|
|
6
6
|
import {
|
|
7
7
|
MAX_TERMINAL_IMAGE_BYTES
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-PYQADEFD.js";
|
|
9
9
|
import {
|
|
10
10
|
init_esbuild_shims
|
|
11
11
|
} from "./chunk-5O2XNYP6.js";
|