@qwen-code/qwen-code 0.23.3 → 0.23.4-nightly.20260914.f024b37689
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/computer-use/SKILL.md +219 -154
- package/bundled/computer-use/references/macos.md +208 -0
- package/bundled/computer-use/references/windows-linux.md +247 -0
- package/bundled/goal-draft/SKILL.md +10 -10
- package/bundled/qc-helper/docs/configuration/settings.md +81 -71
- package/bundled/qc-helper/docs/extension/getting-started-extensions.md +2 -0
- package/bundled/qc-helper/docs/extension/introduction.md +9 -3
- package/bundled/qc-helper/docs/features/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/agent-board.md +89 -0
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +3 -21
- package/bundled/qc-helper/docs/features/channels/dws.md +5 -1
- package/bundled/qc-helper/docs/features/channels/overview.md +5 -6
- package/bundled/qc-helper/docs/features/code-review.md +18 -4
- package/bundled/qc-helper/docs/features/commands.md +9 -0
- package/bundled/qc-helper/docs/features/computer-use.md +26 -8
- package/bundled/qc-helper/docs/features/cross-session-protocol.md +23 -5
- package/bundled/qc-helper/docs/features/followup-suggestions.md +17 -5
- package/bundled/qc-helper/docs/features/goals.md +22 -18
- package/bundled/qc-helper/docs/features/hooks.md +280 -106
- package/bundled/qc-helper/docs/features/skills.md +33 -3
- package/bundled/qc-helper/docs/features/status-line.md +2 -0
- package/bundled/qc-helper/docs/features/sub-agents.md +27 -0
- package/bundled/qc-helper/docs/qwen-serve.md +7 -3
- package/bundled/review/SKILL.md +20 -10
- package/bundled/review/references/persistence.md +2 -0
- package/bundled/workflow-authoring/SKILL.md +442 -0
- package/bundled/workflow-creator/SKILL.md +1 -1
- package/chunks/{MaxSizedBox-D4LW7RZZ.js → MaxSizedBox-RT5FZP45.js} +59 -55
- package/chunks/{StandaloneSessionPicker-ALTTRWUP.js → StandaloneSessionPicker-RFPH4XLD.js} +83 -79
- package/chunks/{acp-startup-profiler-KEU6VAYR.js → acp-startup-profiler-RUQNTNU5.js} +2 -2
- package/chunks/acp-subagent-executor-3OYJJTVX.js +141 -0
- package/chunks/{acpAgent-BBSW7XZG.js → acpAgent-DWJA7565.js} +1026 -355
- package/chunks/{agent-SQ6OY3QD.js → agent-JLSKPDD6.js} +43 -39
- package/chunks/{agent-headless-RI2THRQ7.js → agent-headless-5DRZSKW6.js} +43 -39
- package/chunks/{anthropicContentGenerator-JSKMKS6V.js → anthropicContentGenerator-H5YPXIDE.js} +37 -15
- package/chunks/{artifact-tool-PMYZCYNH.js → artifact-tool-MFGORTWZ.js} +59 -109
- package/chunks/{askUserQuestion-4M4YYIB4.js → askUserQuestion-WS4GUT7C.js} +3 -3
- package/chunks/{bridge-DAFMI72L.js → bridge-53QBYO6W.js} +63 -58
- package/chunks/{build-63BIOYWK.js → build-5KWQBWEQ.js} +1 -1
- package/chunks/{ca-KC2AISNS.js → ca-GZ4FDJU2.js} +3 -3
- package/chunks/{channel-management-service-OWDXVL7R.js → channel-management-service-AFVIT4VH.js} +8 -8
- package/chunks/{channel-settings-store-4I6JONT7.js → channel-settings-store-QJJZURJO.js} +68 -64
- package/chunks/{channel-worker-group-F2ZZMLNS.js → channel-worker-group-JR6JOELM.js} +8 -8
- package/chunks/{channel-worker-manager-2SZLJJSJ.js → channel-worker-manager-AVKJEZFL.js} +8 -8
- package/chunks/{channel-worker-supervisor-ZFNWMG6D.js → channel-worker-supervisor-OOYY7BAQ.js} +5 -5
- package/chunks/{chunk-AC6KDLH3.js → chunk-23NA3NCR.js} +1 -1
- package/chunks/{chunk-6JACAGYH.js → chunk-2S2WIGCM.js} +1 -1
- package/chunks/{chunk-IUVIBDKU.js → chunk-2YMRRI2C.js} +9 -10
- package/chunks/{chunk-NOAG7N22.js → chunk-3CEFQSKN.js} +2 -2
- package/chunks/{chunk-F53KKZUD.js → chunk-3LMDSCLU.js} +158 -10
- package/chunks/{chunk-WG7BL3FY.js → chunk-473RJLIH.js} +1 -1
- package/chunks/{chunk-W5ZQMAEM.js → chunk-4Y2I3CI3.js} +1 -1
- package/chunks/{chunk-HGEUHUEV.js → chunk-54B2LTKP.js} +1 -1
- package/chunks/{chunk-IRH27ZC2.js → chunk-5EZRLTLQ.js} +4 -4
- package/chunks/{chunk-DLH7YIX6.js → chunk-5FK4MSHB.js} +3 -3
- package/chunks/{chunk-CUEXOHQH.js → chunk-5ODRE7E5.js} +9 -15
- package/chunks/{chunk-ZU47FBOC.js → chunk-5VPMGZ2V.js} +144 -12
- package/chunks/{chunk-532WHF4F.js → chunk-5VQR2DD7.js} +2 -2
- package/chunks/{chunk-YBUMTY7B.js → chunk-66N6C4EH.js} +1 -1
- package/chunks/{chunk-NHCZJQE4.js → chunk-6CHDV2MQ.js} +6 -6
- package/chunks/{chunk-Y2MYW47X.js → chunk-6WXVEDT2.js} +9 -2
- package/chunks/{chunk-SBRX4BDI.js → chunk-74NZLSCZ.js} +2 -2
- package/chunks/{chunk-7APZIRH3.js → chunk-755ZTFXV.js} +5 -5
- package/chunks/{chunk-ZHKTKHMO.js → chunk-7MIBD3LG.js} +1 -1
- package/chunks/{chunk-NJQTG2G3.js → chunk-7Q3B23XG.js} +11 -11
- package/chunks/{chunk-76RGWKLS.js → chunk-ABNX6E6K.js} +1 -1
- package/chunks/chunk-ACHCT36C.js +28 -0
- package/chunks/{chunk-NE624IVP.js → chunk-ADQUK6WA.js} +1 -1
- package/chunks/{chunk-PLLIWEM3.js → chunk-AEWCOE64.js} +2 -2
- package/chunks/{chunk-KOKPXIAN.js → chunk-AKVL46TX.js} +3 -3
- package/chunks/{chunk-RWVD5RRY.js → chunk-AKX4Y4PS.js} +3 -3
- package/chunks/{chunk-3FPYT6QC.js → chunk-ARDHE6MM.js} +23 -0
- package/chunks/{chunk-EVTNACMT.js → chunk-ASOI6Z7M.js} +12 -12
- package/chunks/{chunk-LILGKQ4B.js → chunk-AXZMWAJV.js} +156 -26
- package/chunks/{chunk-XBZTAGB7.js → chunk-AYS36QDK.js} +1 -1
- package/chunks/{chunk-MLQNSPRZ.js → chunk-BBGX7NTA.js} +15 -5
- package/chunks/{chunk-Q5BD56BW.js → chunk-BPLCAEJZ.js} +7 -7
- package/chunks/{chunk-TPKQIA7G.js → chunk-BSIOCNDK.js} +1 -1
- package/chunks/{chunk-U7O65WKL.js → chunk-BW2SMO6L.js} +1 -1
- package/chunks/{chunk-MSNHNAQZ.js → chunk-BYOV6CG6.js} +3 -3
- package/chunks/{chunk-WBCPROWX.js → chunk-C4HBZQNH.js} +1 -1
- package/chunks/{chunk-NOO4QFXM.js → chunk-C75BXMPM.js} +1 -3
- package/chunks/chunk-CFMZLE3L.js +75 -0
- package/chunks/{chunk-SODMFNAR.js → chunk-CMM34UXX.js} +5 -5
- package/chunks/{chunk-AXTFYDXT.js → chunk-CXXAZ2LZ.js} +1 -1
- package/chunks/{chunk-OLTN767L.js → chunk-DGK4IQXU.js} +2 -2
- package/chunks/{chunk-J3TJH52D.js → chunk-DOTF2PF2.js} +1 -1
- package/chunks/{chunk-HBU7EKY4.js → chunk-DQLYJFK2.js} +45 -15
- package/chunks/{chunk-BWQLXU37.js → chunk-DTMRHTFW.js} +381 -86
- package/chunks/{chunk-2ALXPGB4.js → chunk-E6IR653O.js} +1 -1
- package/chunks/{chunk-ZKYR7QS4.js → chunk-EDB556X7.js} +2 -2
- package/chunks/{chunk-NUQVB25K.js → chunk-EKMJR7M3.js} +2 -2
- package/chunks/{chunk-7QYWGTHB.js → chunk-EPVEPTI3.js} +44 -151
- package/chunks/{acp-subagent-executor-LEUN3N7N.js → chunk-EQAAQVLD.js} +11 -110
- package/chunks/{chunk-53GWJOLP.js → chunk-F7WDCD2N.js} +3 -1
- package/chunks/{chunk-S6Q6Q4P2.js → chunk-FBDHP23D.js} +1 -1
- package/chunks/{chunk-3KQBQ6FM.js → chunk-FEMYSX4G.js} +190 -28
- package/chunks/{chunk-3I7W2POO.js → chunk-FGROOEKM.js} +5 -40
- package/chunks/{chunk-LDVNJZGH.js → chunk-FIRCQJG2.js} +17 -8
- package/chunks/{chunk-HNLMYDQE.js → chunk-FMLBBXHB.js} +13 -9
- package/chunks/{chunk-ALMR3E6Q.js → chunk-GDWE23OR.js} +3 -3
- package/chunks/{chunk-X7UJKOHZ.js → chunk-GG27UVAT.js} +4 -6
- package/chunks/{chunk-DT75RKNH.js → chunk-GKLJIDLK.js} +3 -3
- package/chunks/{chunk-IAEXTMED.js → chunk-GNV2SFO7.js} +173 -7
- package/chunks/{chunk-CXTPVBFA.js → chunk-GSS4SZNG.js} +100 -17
- package/chunks/{chunk-BWAMMKIS.js → chunk-GYKAXTMQ.js} +135 -6
- package/chunks/{chunk-IL5M5NYD.js → chunk-HCKYDMYV.js} +11 -9
- package/chunks/{chunk-6HUXPLB5.js → chunk-HEOH7JZY.js} +5 -5
- package/chunks/{chunk-DTNV6UZY.js → chunk-HFJSQ4GL.js} +10 -24
- package/chunks/{chunk-SSGAAWLY.js → chunk-HNTIWVRC.js} +95 -73
- package/chunks/{chunk-E7LB57MB.js → chunk-HUD3U4GY.js} +6 -6
- package/chunks/{chunk-MHAADZOZ.js → chunk-HVCRYFA4.js} +3 -3
- package/chunks/{chunk-VZUCTJ2P.js → chunk-I6YJZGHS.js} +10 -10
- package/chunks/{chunk-RZHU3K6M.js → chunk-IAS753HG.js} +2 -20
- package/chunks/{chunk-EDMXGXAK.js → chunk-IBRQG2MP.js} +10 -13
- package/chunks/chunk-INGBUYL6.js +230 -0
- package/chunks/{chunk-7ICHPMBQ.js → chunk-IVUKJRSD.js} +4 -4
- package/chunks/{chunk-NRXWJXJ4.js → chunk-IYSXQ5I4.js} +15 -15
- package/chunks/{chunk-XGYHNWL3.js → chunk-J7LBAKDH.js} +3 -3
- package/chunks/{chunk-3BTSSIJO.js → chunk-JDKY7O5J.js} +99 -14
- package/chunks/chunk-JPXPY5L4.js +1416 -0
- package/chunks/{chunk-LG5Y4OWO.js → chunk-JRHKM3YQ.js} +2 -2
- package/chunks/{chunk-RLLRJJDR.js → chunk-JYTUSZOK.js} +2 -2
- package/chunks/{chunk-W5FIP7FC.js → chunk-K2JLUF22.js} +5 -5
- package/chunks/{chunk-POC3YMHG.js → chunk-K7YI4MSY.js} +4 -4
- package/chunks/{chunk-UKZ45TJL.js → chunk-KDXTBWQB.js} +420 -219
- package/chunks/{chunk-N7VWZDWW.js → chunk-KJFGH23C.js} +4506 -3840
- package/chunks/{chunk-K2OJUPOE.js → chunk-KP2FHIFR.js} +12 -0
- package/chunks/{chunk-GCDXVPFK.js → chunk-KYBIIQOQ.js} +31 -7
- package/chunks/{chunk-IV7GDNKC.js → chunk-KZCK5JUN.js} +4 -4
- package/chunks/{chunk-MF6E7FSA.js → chunk-L63PZHD7.js} +8 -201
- package/chunks/{chunk-ZW2EUO2A.js → chunk-L6DIANLD.js} +1 -1
- package/chunks/chunk-LAKMZLJ5.js +191 -0
- package/chunks/{chunk-DYFOSJHU.js → chunk-LCYVZFMV.js} +2769 -1153
- package/chunks/{chunk-3UXUOFO6.js → chunk-LLJIZIRQ.js} +9 -10
- package/chunks/chunk-LMJSPC55.js +260 -0
- package/chunks/{chunk-YQHLFCPU.js → chunk-LOAW7JYR.js} +32 -24
- package/chunks/{chunk-X6K77VHC.js → chunk-LWWRJRCD.js} +1 -1
- package/chunks/{chunk-UXEO7E3V.js → chunk-LYD3T3H7.js} +1 -0
- package/chunks/{chunk-E4UEO3XM.js → chunk-ME4JBHSB.js} +324 -2
- package/chunks/{chunk-BV6Q5HMY.js → chunk-MJHLKWGJ.js} +8 -7
- package/chunks/{chunk-NFYEQRLG.js → chunk-MQRLLBMQ.js} +1 -1
- package/chunks/{chunk-3XLK2QMY.js → chunk-MVLLTUOB.js} +59 -16
- package/chunks/{chunk-O4KNCAX4.js → chunk-NCPFOLM2.js} +11 -0
- package/chunks/{chunk-2SZH22YO.js → chunk-NJ2OFVUX.js} +115 -97
- package/chunks/{chunk-GOXQL4YH.js → chunk-NLRWN5PN.js} +2 -2
- package/chunks/{chunk-6MBXY6WM.js → chunk-NRQI3PGS.js} +1 -1
- package/chunks/{chunk-JYKWOREU.js → chunk-NSY7YQMU.js} +13 -3
- package/chunks/{chunk-NMRCXKQ5.js → chunk-NUIF54XD.js} +3 -3
- package/chunks/{chunk-3CZ2BQV6.js → chunk-NXUZFW3G.js} +49 -19
- package/chunks/chunk-OAWFG54S.js +32 -0
- package/chunks/{chunk-DAWWT2ID.js → chunk-OBHKFWAE.js} +1374 -2164
- package/chunks/{chunk-HBQ2NXOU.js → chunk-OKSSFN7F.js} +2 -2
- package/chunks/{chunk-NHJKAR6E.js → chunk-ON7M7VUD.js} +972 -18
- package/chunks/{chunk-5GLDOLNQ.js → chunk-OWUAZXXN.js} +4 -3
- package/chunks/{chunk-2UWQX4FP.js → chunk-OZEV3R3S.js} +1 -1
- package/chunks/{chunk-FCQJLMA2.js → chunk-Q3TFRP5G.js} +178 -8
- package/chunks/{chunk-ZKZHSB5W.js → chunk-QR4Q425T.js} +9 -9
- package/chunks/{chunk-J6MB5ZHZ.js → chunk-QZW6WRB7.js} +2 -1
- package/chunks/{chunk-TP6FYVQT.js → chunk-RSWBT7AZ.js} +33 -1
- package/chunks/chunk-S7UQ3V2H.js +87 -0
- package/chunks/{chunk-N6VQ37ZZ.js → chunk-SFL6U7U7.js} +1 -1
- package/chunks/{chunk-MOS5OAOG.js → chunk-SROLVJFY.js} +6 -6
- package/chunks/{chunk-HUXPEUFL.js → chunk-SYROIHU7.js} +1 -1
- package/chunks/{chunk-PSPAM24S.js → chunk-TBSCTWKF.js} +6 -0
- package/chunks/chunk-TDS25ULF.js +154 -0
- package/chunks/chunk-U6H3XTFA.js +95 -0
- package/chunks/{chunk-Z3GF56ME.js → chunk-UDEWJKNB.js} +3 -3
- package/chunks/{chunk-7BXXIQG4.js → chunk-ULPXHGLV.js} +36 -72
- package/chunks/{chunk-5KI7ZDTB.js → chunk-UN6YL6VF.js} +24 -12
- package/chunks/{chunk-JXNIF2O5.js → chunk-V545KI73.js} +1 -1
- package/chunks/chunk-VGY2RGXL.js +100 -0
- package/chunks/{chunk-TBEXLLAO.js → chunk-VRQZESKP.js} +1 -1
- package/chunks/{chunk-FN3JNDRU.js → chunk-VVI7MK3V.js} +3 -3
- package/chunks/{chunk-NMCDMLHL.js → chunk-VYIE36BF.js} +50 -35
- package/chunks/{chunk-EUURTIV6.js → chunk-WBSJ6VPZ.js} +10 -2
- package/chunks/{chunk-NLNQNBZ2.js → chunk-WD6YQI5M.js} +1 -1
- package/chunks/chunk-WDH4TVD3.js +2812 -0
- package/chunks/chunk-WFNEY5G7.js +347 -0
- package/chunks/{chunk-XKBFYTCD.js → chunk-WK6DEH3Q.js} +46 -0
- package/chunks/{chunk-36HCNKDS.js → chunk-WKVZES7O.js} +65 -14
- package/chunks/{chunk-R4Q2PEFV.js → chunk-WVQHS26P.js} +1 -1
- package/chunks/{chunk-GSILBZLN.js → chunk-XCQJUYLQ.js} +2 -2
- package/chunks/{chunk-KFZYGSJN.js → chunk-XMWEUO26.js} +3 -3
- package/chunks/{chunk-2PJRI3EH.js → chunk-XPEZVAK2.js} +218 -43
- package/chunks/{chunk-OX7IZ2G5.js → chunk-XPULQNNS.js} +4 -4
- package/chunks/{chunk-VX63RJXE.js → chunk-XX5HQLCZ.js} +7 -0
- package/chunks/{chunk-2Z3T52OC.js → chunk-Y5TM7SBV.js} +7 -2
- package/chunks/{chunk-SYLECP23.js → chunk-Y7W2X4WN.js} +4 -4
- package/chunks/{chunk-2ZN3O5FT.js → chunk-YAC6S4ZF.js} +6 -6
- package/chunks/{chunk-V2P3DOQR.js → chunk-YDFOHRS5.js} +1 -1
- package/chunks/{chunk-HGAELO7B.js → chunk-YFX2M3ZI.js} +2 -2
- package/chunks/{chunk-QMUYLYT5.js → chunk-YGFJ6BRT.js} +1 -1
- package/chunks/{chunk-LK2WUCDQ.js → chunk-YM6KUQ2S.js} +1 -1
- package/chunks/{chunk-BZM5U74J.js → chunk-YQSC7BRZ.js} +724 -468
- package/chunks/chunk-Z72PLR74.js +36 -0
- package/chunks/{chunk-6W4HBUA2.js → chunk-ZGZN54IU.js} +1 -1
- package/chunks/{chunk-BHTYRHJF.js → chunk-ZJ7JQUGY.js} +4 -1
- package/chunks/{chunk-4ALNJDHL.js → chunk-ZKIAGIGH.js} +87 -4
- package/chunks/{chunk-F42YYSCK.js → chunk-ZLU6NBSL.js} +8 -8
- package/chunks/{chunk-VG3Q2NC4.js → chunk-ZNI3YJHS.js} +32 -12
- package/chunks/{chunk-Q2LVVIKF.js → chunk-ZZUXUBEB.js} +29 -12
- package/chunks/codex-subagent-executor-QEDKWUAR.js +586 -0
- package/chunks/{config-utils-L6KLDYIV.js → config-utils-HCV2DX7W.js} +60 -56
- package/chunks/{contextCommand-UYEH7NIU.js → contextCommand-U5WK3XNI.js} +58 -54
- package/chunks/{core-runtime-NVHT3Z3V.js → core-runtime-RODZHBF7.js} +58 -55
- package/chunks/{create-sub-session-YWASE5VH.js → create-sub-session-L6UGUL4T.js} +169 -89
- package/chunks/{create-sub-session-TIGCFGCS.js → create-sub-session-MSGNIM37.js} +5 -2
- package/chunks/{cron-create-AKWX67FO.js → cron-create-U2JJ5CCF.js} +3 -3
- package/chunks/{cron-delete-XPB6IYZJ.js → cron-delete-7DM4LJWD.js} +2 -2
- package/chunks/{cron-list-XBKO4WU5.js → cron-list-VCUSZK2Y.js} +2 -2
- package/chunks/{daemon-G5TYKZD6.js → daemon-NJB4PWZ7.js} +3 -1
- package/chunks/{daemon-git-worktree-guard-FOW4RQSK.js → daemon-git-worktree-guard-Y5T7KIBG.js} +58 -54
- package/chunks/{daemon-status-provider-O5KQZYMP.js → daemon-status-provider-AQBGUOGB.js} +68 -63
- package/chunks/{daemon-trust-policy-3ATXEON7.js → daemon-trust-policy-EB2NNNDT.js} +64 -60
- package/chunks/{daemon-trust-policy-monitor-7MCNDNEC.js → daemon-trust-policy-monitor-AFI3E2Z5.js} +64 -60
- package/chunks/{de-UU2YTO37.js → de-VGY3VNBU.js} +3 -3
- package/chunks/{deferred-core-runtime-JK5IXL5K.js → deferred-core-runtime-H7ZSF3PZ.js} +56 -52
- package/chunks/{discovery-XP4RMDUM.js → discovery-5KUEPR65.js} +2 -2
- package/chunks/{display-image-NAH3AZ63.js → display-image-QTHALY6N.js} +3 -3
- package/chunks/{dist-KLZ7XGEQ.js → dist-2QYIVNS6.js} +1 -4
- package/chunks/{dist-AHJYPSJL.js → dist-GUB7QRYA.js} +2 -5
- package/chunks/{dist-ZXTZTE54.js → dist-MPUZZOG5.js} +4 -17
- package/chunks/{dist-F2DVGTL3.js → dist-NIOJXMGY.js} +111 -101
- package/chunks/{dist-KJGRVIGJ.js → dist-PA7WPFVE.js} +5 -36
- package/chunks/{dist-AIKC5E5P.js → dist-SE4J6Z4O.js} +43 -669
- package/chunks/{dist-H6G3K26N.js → dist-T6DDPDLQ.js} +14 -34
- package/chunks/{dist-GWNQVPZT.js → dist-TFGETXFN.js} +10 -33
- package/chunks/{dist-ZA52JXAS.js → dist-VDLSBCLM.js} +1 -5
- package/chunks/{edit-SY35KYIE.js → edit-AFPKKMKD.js} +46 -42
- package/chunks/{en-CAJHTIQT.js → en-E5ZO5TZW.js} +5 -3
- package/chunks/{enter-worktree-54L5QJ3N.js → enter-worktree-CAARFWBI.js} +6 -5
- package/chunks/{enterPlanMode-HXX6KQJR.js → enterPlanMode-3Z3I6I4K.js} +43 -39
- package/chunks/{environment-DKXHG4HB.js → environment-G4NM4JE4.js} +59 -55
- package/chunks/{errors-ADY7LQJJ.js → errors-XVV3RAEG.js} +58 -54
- package/chunks/exec-RPKEY6HP.js +505 -0
- package/chunks/{exit-worktree-EORJDKDS.js → exit-worktree-JXGGUOBP.js} +6 -5
- package/chunks/{exitPlanMode-HSK2CQI6.js → exitPlanMode-JGUYOZCP.js} +43 -39
- package/chunks/{fast-path-U636VWN2.js → fast-path-SXPNVZAS.js} +10 -10
- package/chunks/{fast-path-settings-V7MI7EZJ.js → fast-path-settings-XDYX7X5Z.js} +2 -2
- package/chunks/{fr-HKNWVXRJ.js → fr-UAZJJH5N.js} +3 -3
- package/chunks/{glob-GUGGTH5L.js → glob-BPOP43P6.js} +43 -39
- package/chunks/{goal-tools-PXYRSQGX.js → goal-tools-FQXDPBCD.js} +49 -41
- package/chunks/{grep-3PKFKLCA.js → grep-H2I33VAO.js} +8 -3
- package/chunks/{handleAutoUpdate-5KHS4HIN.js → handleAutoUpdate-23TEWABL.js} +61 -57
- package/chunks/{i18n-KSGKMUPT.js → i18n-2LI3LH4L.js} +57 -53
- package/chunks/{image-gen-OCCR2WWU.js → image-gen-5G2TQ3DY.js} +6 -5
- package/chunks/{initializer-YYT5XEZF.js → initializer-IHSQVGZD.js} +64 -60
- package/chunks/{installationInfo-UNSBPYW2.js → installationInfo-KTZGFBDG.js} +57 -53
- package/chunks/{ja-GJS5RZGU.js → ja-2RITCMAJ.js} +3 -3
- package/chunks/list-K2XO7FLR.js +133 -0
- package/chunks/{list-agents-QLDXS5OD.js → list-agents-EWDCEPIW.js} +3 -3
- package/chunks/{llm-XGGLBGPH.js → llm-FFYRSEJZ.js} +161 -125
- package/chunks/{llm-content-generator-ZHQQT5W7.js → llm-content-generator-EXJEU5MJ.js} +14 -7
- package/chunks/{loadedSettingsAdapter-3DXLASK7.js → loadedSettingsAdapter-BSWBMUIT.js} +64 -60
- package/chunks/{loggingContentGenerator-V72OCCJO.js → loggingContentGenerator-RE3L7S24.js} +47 -43
- package/chunks/{loop-wakeup-HHMYIC7Z.js → loop-wakeup-VG6CGBQA.js} +4 -4
- package/chunks/{ls-N7ABR6HI.js → ls-6ZB3BEIR.js} +1 -1
- package/chunks/{lsp-LTOFWG5P.js → lsp-M54FQARP.js} +5 -1
- package/chunks/{managed-npm-update-HV5LPZH2.js → managed-npm-update-D56DKMKV.js} +57 -53
- package/chunks/mcp-BS46APKT.js +127 -0
- package/chunks/model-configuration-L5WZ7NBY.js +140 -0
- package/chunks/modelConfigUtils-WAM6HBUX.js +119 -0
- package/chunks/{monitor-TLBNM4MV.js → monitor-CYXNE7UB.js} +43 -39
- package/chunks/{nonInteractiveCli-LSJSQ2W4.js → nonInteractiveCli-ZPBORWHM.js} +112 -107
- package/chunks/{notebook-edit-OSPOLZP6.js → notebook-edit-CSYGREO5.js} +45 -41
- package/chunks/{openaiContentGenerator-BE4S5TRD.js → openaiContentGenerator-KDGLKJVS.js} +24 -19
- package/chunks/{openaiResponsesContentGenerator-RTCAJ5V5.js → openaiResponsesContentGenerator-AWRYZLJU.js} +110 -19
- package/chunks/{pidfile-H32FEPWA.js → pidfile-QGUW5UJ7.js} +56 -52
- package/chunks/{processUtils-SSLIPDEA.js → processUtils-Q6GS3E2T.js} +2 -2
- package/chunks/{prompt-terminal-ledger-I5SLL6UF.js → prompt-terminal-ledger-BLCAZPSQ.js} +57 -53
- package/chunks/{pt-FXMYXEUV.js → pt-5ZF7ZQUV.js} +3 -3
- package/chunks/{qwenContentGenerator-TMQC623Z.js → qwenContentGenerator-LSRUVWCL.js} +47 -43
- package/chunks/{qwenOAuth2-3ZRQHHTC.js → qwenOAuth2-WIEUEFEY.js} +5 -4
- package/chunks/{read-file-T2QAIZE2.js → read-file-56DVLPQR.js} +9 -8
- package/chunks/{read-mcp-resource-B37WANAQ.js → read-mcp-resource-LPSWXVOD.js} +1 -1
- package/chunks/{record-artifact-OAXWXZ5D.js → record-artifact-PXMNP7GZ.js} +3 -3
- package/chunks/{record-source-D7R7X3GT.js → record-source-2GSY5JD5.js} +6 -6
- package/chunks/{report-findings-AR3VC6EQ.js → report-findings-W6GR7SYZ.js} +4 -4
- package/chunks/{request-shutdown-IKNWTX5M.js → request-shutdown-53SNYGVR.js} +5 -5
- package/chunks/{resumeHistoryUtils-QLKDH5GY.js → resumeHistoryUtils-ZM5PHHNI.js} +63 -59
- package/chunks/{ripGrep-YGWL7KCV.js → ripGrep-INOTDWED.js} +13 -11
- package/chunks/{ru-RMHURE5U.js → ru-7BNZFQKG.js} +3 -3
- package/chunks/{run-qwen-serve-26KZDECC.js → run-qwen-serve-NZY4OHHH.js} +314 -127
- package/chunks/{runtime-BMEIVDDG.js → runtime-6CSFTXGK.js} +69 -65
- package/chunks/{scheduled-tasks-NCFPP6VQ.js → scheduled-tasks-T5DMXMRI.js} +66 -60
- package/chunks/{scheduler-47TVMUVN.js → scheduler-STH4FWGX.js} +58 -54
- package/chunks/{sdk-exporters-http-VWTF4W6K.js → sdk-exporters-http-3R2TRQHE.js} +2 -1
- package/chunks/{sdk-impl-G6FVTBQZ.js → sdk-impl-4WF3VZ2F.js} +3 -3
- package/chunks/{send-message-TWOGWCBG.js → send-message-UMJKN27Q.js} +7 -7
- package/chunks/{serve-KL3G6LQQ.js → serve-K4VRD7S3.js} +66 -62
- package/chunks/{server-LBPYXZ5G.js → server-SAF6RZWD.js} +783 -350
- package/chunks/{session-YG6742LO.js → session-2IZX2R3S.js} +117 -112
- package/chunks/{session-attachments-root-OUBQDYC4.js → session-attachments-root-WFCEIOC7.js} +56 -52
- package/chunks/{session-pr-refresh-EKGMYNAW.js → session-pr-refresh-H7LDUL7K.js} +66 -60
- package/chunks/{settings-DDNHJX2L.js → settings-55B6W4ML.js} +67 -63
- package/chunks/{shell-KUCXWITU.js → shell-C6HWMJCS.js} +43 -39
- package/chunks/{skill-JQLKPNWZ.js → skill-IYKRY5HC.js} +128 -23
- package/chunks/{skill-settings-XERQCUXZ.js → skill-settings-YWKLCBV2.js} +72 -60
- package/chunks/{spawnChannel-GQ45QFGB.js → spawnChannel-YXUNPB3M.js} +60 -55
- package/chunks/{standalone-update-PRF3ILGZ.js → standalone-update-H6YIWY5F.js} +58 -54
- package/chunks/{start-opentui-ui-JDSOZE3N.js → start-opentui-ui-U2NNOY65.js} +2700 -2166
- package/chunks/{startInteractiveUI-RRW3JVHN.js → startInteractiveUI-ZF5EJN6N.js} +1621 -1783
- package/chunks/{syntheticOutput-F6F27JMK.js → syntheticOutput-EX5L5GYI.js} +2 -2
- package/chunks/{task-create-Y623TBHB.js → task-create-75HVPEAH.js} +7 -7
- package/chunks/{task-list-FCPEEGWL.js → task-list-ZLJSMRFA.js} +2 -2
- package/chunks/{task-stop-QTKZXLPH.js → task-stop-MD7P6QGK.js} +1 -1
- package/chunks/{task-update-YLSXF25N.js → task-update-RI7QNVDP.js} +20 -13
- package/chunks/{team-create-5DRLOLOE.js → team-create-XWCSBY3R.js} +43 -39
- package/chunks/{team-delete-S7TLHZCF.js → team-delete-RIDINW6I.js} +1 -1
- package/chunks/{team-plan-approval-MWSGAL5T.js → team-plan-approval-B2SOZ46Z.js} +43 -39
- package/chunks/{terminal-image-renderer-H7PD4FQW.js → terminal-image-renderer-HKBBPT64.js} +58 -54
- package/chunks/{theme-manager-7AV73D6R.js → theme-manager-LHBAB3RV.js} +56 -52
- package/chunks/{todoWrite-5QI2H2FW.js → todoWrite-XSTG2VT5.js} +6 -3
- package/chunks/{tool-search-UGYTBLUV.js → tool-search-D7UTGG7X.js} +17 -12
- package/chunks/{total-session-admission-JIHSTJ5S.js → total-session-admission-VN63755O.js} +63 -58
- package/chunks/{trustedFolders-5VCBXFOP.js → trustedFolders-GD56NJEV.js} +57 -53
- package/chunks/{update-relaunch-4LF3APCV.js → update-relaunch-BMQKKDR6.js} +5 -5
- package/chunks/{updateCheck-4T3WUE5F.js → updateCheck-BZFE6Z5I.js} +60 -56
- package/chunks/{useAutoAcceptIndicator-UMGB64Z6.js → useAutoAcceptIndicator-RD4YNRGG.js} +68 -64
- package/chunks/{validateNonInterActiveAuth-GFJ72U2C.js → validateNonInterActiveAuth-RWWD7TVJ.js} +109 -104
- package/chunks/{version-EAAZN4T2.js → version-DGWI3JF2.js} +1 -1
- package/chunks/{web-fetch-VRU3A2NI.js → web-fetch-2KXAHKDU.js} +15 -13
- package/chunks/web-search-LUI2YS33.js +45 -0
- package/chunks/{web-shell-static-CCN4JZEE.js → web-shell-static-T7UGLVE4.js} +2 -7
- package/chunks/{workflow-UHPFALVZ.js → workflow-WG7WNWMP.js} +179 -79
- package/chunks/workspace-providers-status-VJYJMUDI.js +133 -0
- package/chunks/{workspace-registration-store-A7RGKW62.js → workspace-registration-store-B3XUNFOG.js} +2 -2
- package/chunks/{workspace-registry-C2NGE6SD.js → workspace-registry-56R5RBVU.js} +63 -58
- package/chunks/{workspace-runtime-coordinator-QKMZ24YF.js → workspace-runtime-coordinator-EKDPCK4L.js} +66 -59
- package/chunks/{workspace-service-RQTTAGGC.js → workspace-service-UYGLM6XX.js} +70 -65
- package/chunks/workspace-skills-status-5HMTP63B.js +130 -0
- package/chunks/{workspace-trust-reconciler-KFWATZUU.js → workspace-trust-reconciler-AST2535P.js} +73 -68
- package/chunks/{write-file-DPVB2SBQ.js → write-file-F4R5RBBH.js} +45 -41
- package/chunks/{zh-TW-2K2WRFPY.js → zh-TW-7PRVUGLW.js} +5 -3
- package/chunks/{zh-S5V3Z5CR.js → zh-V2EYTYJP.js} +5 -3
- package/chunks/{zoom-image-S7AWLAPC.js → zoom-image-6HKQ5MFU.js} +11 -10
- package/cli.js +18 -17
- package/codeModeHost.js +4425 -0
- package/export-transcript-document.css +1 -1
- package/export-transcript-document.js +151 -151
- package/locales/ca.js +5 -6
- package/locales/de.js +5 -6
- package/locales/en.js +7 -6
- package/locales/fr.js +6 -6
- package/locales/ja.js +5 -6
- package/locales/pt.js +5 -6
- package/locales/ru.js +6 -6
- package/locales/zh-TW.js +7 -6
- package/locales/zh.js +7 -6
- package/package.json +4 -3
- package/web-shell/assets/{abnfDiagram-VCTEODGH-nU24rpIE.js → abnfDiagram-VCTEODGH-BtpzKw3A.js} +1 -1
- package/web-shell/assets/{arc-D1hTu8QI.js → arc-CQiVKZJP.js} +1 -1
- package/web-shell/assets/architectureDiagram-5GKGNRK7-ekIPBb2d.js +36 -0
- package/web-shell/assets/blockDiagram-NRAW4CY4-BrRWkWri.js +129 -0
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-kEFoC1ei.js → c4Diagram-UCG6FXSJ-qYS8CYZ3.js} +4 -4
- package/web-shell/assets/channel-DSQQnOZj.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-DbT9wS7j.js → chunk-2Q5K7J3B-ZasyyEZm.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-CNbULt6O.js → chunk-5VM5RSS4-C_IzCGeA.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-CbQRy4Tb.js → chunk-F27PBJKO-C25NZOyD.js} +1 -1
- package/web-shell/assets/chunk-G27WJ6UU-XPOHNSGX.js +231 -0
- package/web-shell/assets/chunk-JWPE2WC7-BQBh0Xni.js +1 -0
- package/web-shell/assets/chunk-LCL6LL3I-CoShjpX7.js +206 -0
- package/web-shell/assets/chunk-POPQ4Y6H-BwRmCDSz.js +1 -0
- package/web-shell/assets/{chunk-SVP7TREG-DyBb2Axj.js → chunk-SVP7TREG-DSzE5-Mw.js} +4 -4
- package/web-shell/assets/{chunk-XXDRQBXY-BIA0eb5B.js → chunk-XXDRQBXY-BQSQv30h.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-V94ta08R.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-V94ta08R.js +1 -0
- package/web-shell/assets/cose-bilkent-JH36ORCC-XVUVTHVo.js +1 -0
- package/web-shell/assets/cynefin-OW5HDTMX-CrsKx4lQ.js +178 -0
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-LENf_IUy.js → cynefinDiagram-5FMLGOSQ-BPeZEuHw.js} +1 -1
- package/web-shell/assets/{cytoscape.esm-CUqq0XTU.js → cytoscape.esm-DJK6lGiH.js} +3 -3
- package/web-shell/assets/dagre-3AP2YEHR-D31cQ2Qs.js +4 -0
- package/web-shell/assets/diagram-S7CK7UJ4-zyiG097Q.js +30 -0
- package/web-shell/assets/diagram-UQ7AKVKN-Br3vtfsy.js +41 -0
- package/web-shell/assets/diagram-VSXAHHWV-Bxkhjx4u.js +3 -0
- package/web-shell/assets/diagram-VX7I27RA-BQH8QiDk.js +24 -0
- package/web-shell/assets/diagram-Z3DM3KII-B_aQ1cw0.js +24 -0
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-BGpiquRm.js → ebnfDiagram-PWID7BFC-B9N7BRQE.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-D0besu_U.js → erDiagram-SSCWMZ5O-Cx6Hb1Re.js} +13 -13
- package/web-shell/assets/flowDiagram-A5DVABFB-DTuLP7GU.js +168 -0
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-CNlsAeNr.js → ganttDiagram-EL5Y4UJY-DYS3d-sL.js} +1 -1
- package/web-shell/assets/gitGraphDiagram-WWUBYQGX-Cp0EGx04.js +106 -0
- package/web-shell/assets/index-45-LkPDB.js +3 -0
- package/web-shell/assets/{index-CGT341lL.js → index-DohPy72Z.js} +1 -1
- package/web-shell/assets/index-H8um-iEl.js +2207 -0
- package/web-shell/assets/index-n6N-2a3v.css +36 -0
- package/web-shell/assets/{infoDiagram-RXCK75RN-Bpai64Ll.js → infoDiagram-RXCK75RN-9--kukiT.js} +1 -1
- package/web-shell/assets/ishikawaDiagram-5VMMS53U-CGBdsDLD.js +70 -0
- package/web-shell/assets/{journeyDiagram-EYS64GPL-iz_DKgFX.js → journeyDiagram-EYS64GPL-DeXhcscd.js} +1 -1
- package/web-shell/assets/kanban-definition-3QL26DDD-CFdvsU3b.js +89 -0
- package/web-shell/assets/{layout-qEvKgnvU.js → layout-DAnwQ3KB.js} +1 -1
- package/web-shell/assets/{linear-C6lklGdq.js → linear-CTo7v7Nh.js} +1 -1
- package/web-shell/assets/mermaid.core-jggSxF1i.js +312 -0
- package/web-shell/assets/mindmap-definition-FBJOCRG2-DzIepvlJ.js +96 -0
- package/web-shell/assets/{pegDiagram-XKGWAZYB-BhD0q0i6.js → pegDiagram-XKGWAZYB-BFGS9GJv.js} +1 -1
- package/web-shell/assets/pieDiagram-E7YTZNPT-B2UUcNIT.js +39 -0
- package/web-shell/assets/quadrantDiagram-AXDQQJYC-BgM6htrX.js +7 -0
- package/web-shell/assets/qwen-code-notification-BRVagufF.png +0 -0
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-E1g2KIFK.js → railroadDiagram-O6MQD6OU-Dk9cS7N-.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-CuerYJOe.js → requirementDiagram-EFPCY7ZU-C9oRg7xi.js} +13 -13
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-CqWyCZGA.js → sankeyDiagram-P5KCCOFB-B-_c7GzI.js} +7 -7
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-B-YWb8x4.js → sequenceDiagram-WJ2MYXX4-R0M-347u.js} +16 -16
- package/web-shell/assets/sizeCapture-X5ZJPWSS-Df0f8UAW.js +1 -0
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-C8LDpNHS.js → stateDiagram-HBIQ2CUA-CsUEfAA-.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-CnSuTPJ2.js +1 -0
- package/web-shell/assets/swimlanes-XN3QIQJK-9OGHVSrx.js +1 -0
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-Bb7TcWQw.js +8 -0
- package/web-shell/assets/timeline-definition-24CTP7MA-DAfGqS2B.js +120 -0
- package/web-shell/assets/vennDiagram-4TSXK5OY-CKATpwHi.js +34 -0
- package/web-shell/assets/wardleyDiagram-VM6X3IG4-CQHdhTrm.js +78 -0
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-ruD2Wjhg.js → xychartDiagram-S5SC5T6Z-5k9NLqlY.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/chunk-7Q2AXRDJ.js +0 -114
- package/chunks/chunk-AEY27Z35.js +0 -1411
- package/chunks/chunk-CFKIH3D3.js +0 -50
- package/chunks/chunk-HWVUSYSN.js +0 -126
- package/chunks/chunk-QHMLYMMS.js +0 -32
- package/chunks/chunk-SAH4BD2J.js +0 -92
- package/chunks/chunk-TWUKBNWM.js +0 -86
- package/chunks/chunk-ZTTC7T4X.js +0 -126
- package/chunks/list-YL6LDQKQ.js +0 -129
- package/chunks/mcp-IYVSIW6O.js +0 -123
- package/chunks/web-search-NEGYQNDJ.js +0 -912
- package/chunks/workspace-providers-status-AEYISSU2.js +0 -127
- package/chunks/workspace-skills-status-5HWZU3HX.js +0 -126
- package/web-shell/assets/architectureDiagram-5GKGNRK7-B_fgkKe7.js +0 -36
- package/web-shell/assets/blockDiagram-NRAW4CY4-C3pddUNg.js +0 -129
- package/web-shell/assets/channel-Blod4z1X.js +0 -1
- package/web-shell/assets/chunk-G27WJ6UU-CVbXTxYk.js +0 -231
- package/web-shell/assets/chunk-JWPE2WC7-D89c_BXy.js +0 -1
- package/web-shell/assets/chunk-LCL6LL3I-B7-I_9KB.js +0 -206
- package/web-shell/assets/chunk-POPQ4Y6H-DcLQFzS4.js +0 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-D6hFDMqb.js +0 -1
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-D6hFDMqb.js +0 -1
- package/web-shell/assets/cose-bilkent-JH36ORCC-Db2FYN85.js +0 -1
- package/web-shell/assets/cynefin-OW5HDTMX-i4GwmBVy.js +0 -178
- package/web-shell/assets/dagre-3AP2YEHR-CF9XVrD9.js +0 -4
- package/web-shell/assets/diagram-S7CK7UJ4-DD5PJfSm.js +0 -30
- package/web-shell/assets/diagram-UQ7AKVKN-CjD_sBMj.js +0 -41
- package/web-shell/assets/diagram-VSXAHHWV-U5WwMqyA.js +0 -3
- package/web-shell/assets/diagram-VX7I27RA-BujpHJJf.js +0 -24
- package/web-shell/assets/diagram-Z3DM3KII-3ZLtKEXo.js +0 -24
- package/web-shell/assets/flowDiagram-A5DVABFB-9DwDuIyr.js +0 -168
- package/web-shell/assets/gitGraphDiagram-WWUBYQGX-C_pPFiTR.js +0 -106
- package/web-shell/assets/index-BYWs4JWq.js +0 -3
- package/web-shell/assets/index-D3YS6KuJ.js +0 -2173
- package/web-shell/assets/index-eBxK3rs2.css +0 -36
- package/web-shell/assets/ishikawaDiagram-5VMMS53U-ktpJFq4r.js +0 -70
- package/web-shell/assets/kanban-definition-3QL26DDD-m_gG00Yt.js +0 -89
- package/web-shell/assets/mermaid.core-DSCYB_2P.js +0 -312
- package/web-shell/assets/mindmap-definition-FBJOCRG2-DRQbT8w-.js +0 -96
- package/web-shell/assets/pieDiagram-E7YTZNPT-BvIGQCSd.js +0 -39
- package/web-shell/assets/quadrantDiagram-AXDQQJYC-BDQtfpU-.js +0 -7
- package/web-shell/assets/sizeCapture-X5ZJPWSS-BB7YY4Tl.js +0 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-C4CbdvGa.js +0 -1
- package/web-shell/assets/swimlanes-XN3QIQJK-D94vOoxZ.js +0 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN--QNSIOC8.js +0 -8
- package/web-shell/assets/timeline-definition-24CTP7MA-C9C8uEYm.js +0 -120
- package/web-shell/assets/vennDiagram-4TSXK5OY-CYzMHbVW.js +0 -34
- package/web-shell/assets/wardleyDiagram-VM6X3IG4-G9nhtLES.js +0 -78
- package/chunks/{open-with-auth-6MVIHMXB.js → open-with-auth-XFCCJOO6.js} +3 -3
|
@@ -21,6 +21,14 @@ import {
|
|
|
21
21
|
init_esbuild_shims();
|
|
22
22
|
import * as fs from "node:fs/promises";
|
|
23
23
|
import * as path from "node:path";
|
|
24
|
+
var MAX_CRON_TASK_ROUTING_ID_LENGTH = 256;
|
|
25
|
+
function isValidCronTaskRoutingId(value) {
|
|
26
|
+
return typeof value === "string" && value.length > 0 && value.length <= MAX_CRON_TASK_ROUTING_ID_LENGTH && !Array.from(value).some((character) => {
|
|
27
|
+
const code = character.charCodeAt(0);
|
|
28
|
+
return code <= 31 || code === 127;
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
__name(isValidCronTaskRoutingId, "isValidCronTaskRoutingId");
|
|
24
32
|
var MAX_TASK_RUNS = 20;
|
|
25
33
|
var MAX_CHANNEL_DELIVERY_NAME_LENGTH = 2048;
|
|
26
34
|
var MAX_CHANNEL_DELIVERY_TARGET_ID_LENGTH = 2048;
|
|
@@ -68,6 +76,7 @@ var UPDATE_LOCK_STALE_MS = 2e3;
|
|
|
68
76
|
var UPDATE_LOCK_TIMEOUT_MS = 3e3;
|
|
69
77
|
var updateStaleSeq = 0;
|
|
70
78
|
var updateMutexes = /* @__PURE__ */ new Map();
|
|
79
|
+
var MAX_TASK_DELETION_GENERATIONS = 1e4;
|
|
71
80
|
function getUpdateMutex(filePath) {
|
|
72
81
|
let mutex = updateMutexes.get(filePath);
|
|
73
82
|
if (!mutex) {
|
|
@@ -77,6 +86,60 @@ function getUpdateMutex(filePath) {
|
|
|
77
86
|
return mutex;
|
|
78
87
|
}
|
|
79
88
|
__name(getUpdateMutex, "getUpdateMutex");
|
|
89
|
+
async function readTaskDeletionGenerations(filePath) {
|
|
90
|
+
const statePath = `${filePath}.deletions`;
|
|
91
|
+
let raw;
|
|
92
|
+
try {
|
|
93
|
+
raw = await fs.readFile(statePath, "utf-8");
|
|
94
|
+
} catch (error) {
|
|
95
|
+
if (error.code === "ENOENT") {
|
|
96
|
+
return { generations: /* @__PURE__ */ new Map(), watermark: 0 };
|
|
97
|
+
}
|
|
98
|
+
throw error;
|
|
99
|
+
}
|
|
100
|
+
const parsed = JSON.parse(raw);
|
|
101
|
+
if (parsed.version !== 2 || !Number.isSafeInteger(parsed.watermark) || parsed.watermark < 0 || !Array.isArray(parsed.entries)) {
|
|
102
|
+
throw new Error(`Invalid scheduled-task deletion state: ${statePath}`);
|
|
103
|
+
}
|
|
104
|
+
const generations = /* @__PURE__ */ new Map();
|
|
105
|
+
let maximumGeneration = 0;
|
|
106
|
+
for (const entry of parsed.entries) {
|
|
107
|
+
if (!Array.isArray(entry) || entry.length !== 2 || typeof entry[0] !== "string" || !Number.isSafeInteger(entry[1]) || entry[1] < 1 || generations.has(entry[0])) {
|
|
108
|
+
throw new Error(`Invalid scheduled-task deletion state: ${statePath}`);
|
|
109
|
+
}
|
|
110
|
+
generations.set(entry[0], entry[1]);
|
|
111
|
+
maximumGeneration = Math.max(maximumGeneration, entry[1]);
|
|
112
|
+
}
|
|
113
|
+
const watermark = parsed.watermark;
|
|
114
|
+
if (watermark < maximumGeneration) {
|
|
115
|
+
throw new Error(`Invalid scheduled-task deletion state: ${statePath}`);
|
|
116
|
+
}
|
|
117
|
+
return { generations, watermark };
|
|
118
|
+
}
|
|
119
|
+
__name(readTaskDeletionGenerations, "readTaskDeletionGenerations");
|
|
120
|
+
async function readTaskDeletionGenerationsOrUnknown(filePath) {
|
|
121
|
+
try {
|
|
122
|
+
return await readTaskDeletionGenerations(filePath);
|
|
123
|
+
} catch (error) {
|
|
124
|
+
console.warn(
|
|
125
|
+
`Ignoring unreadable scheduled-task deletion state at ${filePath}.deletions (${error instanceof Error ? error.message : String(error)}) \u2014 task updates proceed without it; delete the file to rebuild it.`
|
|
126
|
+
);
|
|
127
|
+
return void 0;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
__name(readTaskDeletionGenerationsOrUnknown, "readTaskDeletionGenerationsOrUnknown");
|
|
131
|
+
async function writeTaskDeletionGenerations(filePath, deletionState, assertCanCommit) {
|
|
132
|
+
const state = {
|
|
133
|
+
version: 2,
|
|
134
|
+
watermark: deletionState.watermark,
|
|
135
|
+
entries: [...deletionState.generations]
|
|
136
|
+
};
|
|
137
|
+
await atomicWriteJSON(`${filePath}.deletions`, state, {
|
|
138
|
+
noFollow: true,
|
|
139
|
+
assertCanCommit
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
__name(writeTaskDeletionGenerations, "writeTaskDeletionGenerations");
|
|
80
143
|
function getCronFilePath(projectRoot) {
|
|
81
144
|
return path.join(
|
|
82
145
|
Storage.getGlobalTempDir(),
|
|
@@ -107,14 +170,25 @@ async function readCronTasks(projectRoot) {
|
|
|
107
170
|
`Expected a JSON array in ${filePath} \u2014 fix or delete the file; refusing to treat it as an empty schedule.`
|
|
108
171
|
);
|
|
109
172
|
}
|
|
110
|
-
|
|
173
|
+
const normalized = parsed.map((entry) => {
|
|
174
|
+
if (typeof entry !== "object" || entry === null) return entry;
|
|
175
|
+
const record = entry;
|
|
176
|
+
if ((record["modelServiceId"] !== void 0 || record["groupId"] !== void 0) && record["sessionMode"] !== "per_run") {
|
|
177
|
+
const copy = { ...record };
|
|
178
|
+
delete copy["modelServiceId"];
|
|
179
|
+
delete copy["groupId"];
|
|
180
|
+
return copy;
|
|
181
|
+
}
|
|
182
|
+
return entry;
|
|
183
|
+
});
|
|
184
|
+
for (const [index, task] of normalized.entries()) {
|
|
111
185
|
if (!isValidTask(task)) {
|
|
112
186
|
throw new Error(
|
|
113
187
|
`Invalid task entry at index ${index} in ${filePath} \u2014 fix or delete the entry; refusing to drop it from the schedule.`
|
|
114
188
|
);
|
|
115
189
|
}
|
|
116
190
|
}
|
|
117
|
-
return
|
|
191
|
+
return normalized;
|
|
118
192
|
}
|
|
119
193
|
__name(readCronTasks, "readCronTasks");
|
|
120
194
|
async function writeCronTasks(projectRoot, tasks, options = {}) {
|
|
@@ -171,13 +245,76 @@ async function acquireUpdateLock(filePath) {
|
|
|
171
245
|
}
|
|
172
246
|
}
|
|
173
247
|
__name(acquireUpdateLock, "acquireUpdateLock");
|
|
248
|
+
function cronTaskSessionDeletionId(sessionId) {
|
|
249
|
+
const canonicalId = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(
|
|
250
|
+
sessionId
|
|
251
|
+
) ? sessionId.toLowerCase() : sessionId;
|
|
252
|
+
return `session:${canonicalId}`;
|
|
253
|
+
}
|
|
254
|
+
__name(cronTaskSessionDeletionId, "cronTaskSessionDeletionId");
|
|
174
255
|
async function updateCronTasks(projectRoot, mutate, options = {}) {
|
|
175
256
|
const filePath = getCronFilePath(projectRoot);
|
|
176
257
|
return getUpdateMutex(filePath).runExclusive(async () => {
|
|
177
258
|
const release = await acquireUpdateLock(filePath);
|
|
178
259
|
try {
|
|
179
260
|
const tasks = await readCronTasks(projectRoot);
|
|
261
|
+
const observedIds = new Set(
|
|
262
|
+
typeof options.observeDeletionIds === "function" ? options.observeDeletionIds(tasks) : options.observeDeletionIds ?? []
|
|
263
|
+
);
|
|
264
|
+
let deletionState;
|
|
265
|
+
let deletionStateUnknown = false;
|
|
266
|
+
const loadDeletionState = /* @__PURE__ */ __name(async () => {
|
|
267
|
+
if (deletionState === void 0 && !deletionStateUnknown) {
|
|
268
|
+
const state = await readTaskDeletionGenerationsOrUnknown(filePath);
|
|
269
|
+
if (state === void 0) {
|
|
270
|
+
deletionStateUnknown = true;
|
|
271
|
+
} else {
|
|
272
|
+
deletionState = state;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
return deletionState;
|
|
276
|
+
}, "loadDeletionState");
|
|
277
|
+
if (observedIds.size > 0) {
|
|
278
|
+
const observedDeletionState = await loadDeletionState();
|
|
279
|
+
if (observedDeletionState !== void 0) {
|
|
280
|
+
options.onDeletionGenerations?.(
|
|
281
|
+
new Map(
|
|
282
|
+
[...observedIds].map((id) => [
|
|
283
|
+
id,
|
|
284
|
+
observedDeletionState.generations.get(id) ?? 0
|
|
285
|
+
])
|
|
286
|
+
)
|
|
287
|
+
);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
180
290
|
const next = mutate(tasks);
|
|
291
|
+
const deletionIds = typeof options.deletionIds === "function" ? options.deletionIds() : options.deletionIds;
|
|
292
|
+
if (deletionIds?.length) {
|
|
293
|
+
deletionState = await loadDeletionState() ?? {
|
|
294
|
+
generations: /* @__PURE__ */ new Map(),
|
|
295
|
+
watermark: 0
|
|
296
|
+
};
|
|
297
|
+
for (const id of new Set(deletionIds)) {
|
|
298
|
+
if (deletionState.watermark === Number.MAX_SAFE_INTEGER) {
|
|
299
|
+
throw new Error(
|
|
300
|
+
`Scheduled-task deletion generation overflow for ${id}`
|
|
301
|
+
);
|
|
302
|
+
}
|
|
303
|
+
deletionState.watermark += 1;
|
|
304
|
+
deletionState.generations.delete(id);
|
|
305
|
+
deletionState.generations.set(id, deletionState.watermark);
|
|
306
|
+
}
|
|
307
|
+
while (deletionState.generations.size > MAX_TASK_DELETION_GENERATIONS) {
|
|
308
|
+
const oldest = deletionState.generations.keys().next().value;
|
|
309
|
+
if (oldest === void 0) break;
|
|
310
|
+
deletionState.generations.delete(oldest);
|
|
311
|
+
}
|
|
312
|
+
await writeTaskDeletionGenerations(
|
|
313
|
+
filePath,
|
|
314
|
+
deletionState,
|
|
315
|
+
options.assertCanCommit
|
|
316
|
+
);
|
|
317
|
+
}
|
|
181
318
|
if (next !== tasks) {
|
|
182
319
|
await writeCronTasks(projectRoot, next, options);
|
|
183
320
|
}
|
|
@@ -193,14 +330,22 @@ async function addCronTask(projectRoot, task) {
|
|
|
193
330
|
__name(addCronTask, "addCronTask");
|
|
194
331
|
async function removeCronTasks(projectRoot, ids) {
|
|
195
332
|
const idSet = new Set(ids);
|
|
196
|
-
|
|
197
|
-
|
|
333
|
+
try {
|
|
334
|
+
await fs.access(getCronFilePath(projectRoot));
|
|
335
|
+
} catch (error) {
|
|
336
|
+
if (error.code === "ENOENT") return 0;
|
|
337
|
+
throw error;
|
|
338
|
+
}
|
|
198
339
|
let removed = 0;
|
|
199
|
-
await updateCronTasks(
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
340
|
+
await updateCronTasks(
|
|
341
|
+
projectRoot,
|
|
342
|
+
(tasks) => {
|
|
343
|
+
const remaining = tasks.filter((t) => !idSet.has(t.id));
|
|
344
|
+
removed = tasks.length - remaining.length;
|
|
345
|
+
return removed === 0 ? tasks : remaining;
|
|
346
|
+
},
|
|
347
|
+
{ deletionIds: ids }
|
|
348
|
+
);
|
|
204
349
|
return removed;
|
|
205
350
|
}
|
|
206
351
|
__name(removeCronTasks, "removeCronTasks");
|
|
@@ -242,11 +387,13 @@ function isValidTask(value) {
|
|
|
242
387
|
(obj["name"] === void 0 || typeof obj["name"] === "string") && (obj["enabled"] === void 0 || typeof obj["enabled"] === "boolean") && (obj["disabledByArchive"] === void 0 || typeof obj["disabledByArchive"] === "boolean") && // A bound sessionId must be a NON-EMPTY string: an empty string would pass
|
|
243
388
|
// a bare `typeof` check but the scheduler's truthy `task.sessionId` guard
|
|
244
389
|
// would treat it as unbound, so a "bound" task would silently run unbound.
|
|
245
|
-
(obj["sessionId"] === void 0 || typeof obj["sessionId"] === "string" && obj["sessionId"].length > 0) && (obj["sessionOwnedByTask"] === void 0 || typeof obj["sessionOwnedByTask"] === "boolean") && (obj["sessionMode"] === void 0 || obj["sessionMode"] === "persistent" || obj["sessionMode"] === "per_run") && (obj["delivery"] === void 0 || isValidDelivery(obj["delivery"])) && (obj["runs"] === void 0 || isValidRuns(obj["runs"]));
|
|
390
|
+
(obj["sessionId"] === void 0 || typeof obj["sessionId"] === "string" && obj["sessionId"].length > 0) && (obj["sessionOwnedByTask"] === void 0 || typeof obj["sessionOwnedByTask"] === "boolean") && (obj["sessionMode"] === void 0 || obj["sessionMode"] === "persistent" || obj["sessionMode"] === "per_run") && (obj["modelServiceId"] === void 0 || isValidCronTaskRoutingId(obj["modelServiceId"])) && (obj["groupId"] === void 0 || isValidCronTaskRoutingId(obj["groupId"])) && (obj["delivery"] === void 0 || isValidDelivery(obj["delivery"])) && (obj["runs"] === void 0 || isValidRuns(obj["runs"]));
|
|
246
391
|
}
|
|
247
392
|
__name(isValidTask, "isValidTask");
|
|
248
393
|
|
|
249
394
|
export {
|
|
395
|
+
MAX_CRON_TASK_ROUTING_ID_LENGTH,
|
|
396
|
+
isValidCronTaskRoutingId,
|
|
250
397
|
MAX_CHANNEL_DELIVERY_NAME_LENGTH,
|
|
251
398
|
MAX_CHANNEL_DELIVERY_TARGET_ID_LENGTH,
|
|
252
399
|
annotateCronRunSession,
|
|
@@ -257,6 +404,7 @@ export {
|
|
|
257
404
|
CRON_TASKS_DISPLAY_PATH,
|
|
258
405
|
getCronFilePath,
|
|
259
406
|
readCronTasks,
|
|
407
|
+
cronTaskSessionDeletionId,
|
|
260
408
|
updateCronTasks,
|
|
261
409
|
addCronTask,
|
|
262
410
|
removeCronTasks
|
|
@@ -1226,7 +1226,7 @@ function initializeTelemetry(config) {
|
|
|
1226
1226
|
telemetryInitPromise ??= (async () => {
|
|
1227
1227
|
const debugLogger3 = createDebugLogger("OTEL");
|
|
1228
1228
|
try {
|
|
1229
|
-
const { startTelemetrySdk } = await import("./sdk-impl-
|
|
1229
|
+
const { startTelemetrySdk } = await import("./sdk-impl-4WF3VZ2F.js");
|
|
1230
1230
|
if (telemetryInitialized) return;
|
|
1231
1231
|
const started = await startTelemetrySdk(config);
|
|
1232
1232
|
if (!started) return;
|
|
@@ -117,9 +117,9 @@ function matches(cronExpr, date) {
|
|
|
117
117
|
__name(matches, "matches");
|
|
118
118
|
function nextFireTime(cronExpr, after) {
|
|
119
119
|
const fields = parseCron(cronExpr);
|
|
120
|
-
const candidate = new Date(
|
|
121
|
-
|
|
122
|
-
|
|
120
|
+
const candidate = new Date(
|
|
121
|
+
Math.floor(after.getTime() / 6e4) * 6e4 + 6e4
|
|
122
|
+
);
|
|
123
123
|
const maxIterations = 4 * 366 * 24 * 60;
|
|
124
124
|
for (let i = 0; i < maxIterations; i++) {
|
|
125
125
|
const minuteOk = fields.minute.has(candidate.getMinutes());
|
|
@@ -131,7 +131,7 @@ function nextFireTime(cronExpr, after) {
|
|
|
131
131
|
if (minuteOk && hourOk && monthOk && dayOk) {
|
|
132
132
|
return candidate;
|
|
133
133
|
}
|
|
134
|
-
candidate.
|
|
134
|
+
candidate.setTime(candidate.getTime() + 6e4);
|
|
135
135
|
}
|
|
136
136
|
throw new Error(
|
|
137
137
|
`No matching fire time found within 4 years for: "${cronExpr}"`
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
createTask
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-WK6DEH3Q.js";
|
|
6
6
|
import {
|
|
7
7
|
getPlanRequiredTeammatePreApprovalMessage,
|
|
8
8
|
isPlanRequiredTeammateAwaitingApproval
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-AEWCOE64.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-RSWBT7AZ.js";
|
|
19
19
|
import {
|
|
20
20
|
init_esbuild_shims
|
|
21
21
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -27,12 +27,6 @@ var FIELD_KINDS = /* @__PURE__ */ new Set([
|
|
|
27
27
|
"object"
|
|
28
28
|
]);
|
|
29
29
|
var SHARED_ACCESS_FIELDS = [
|
|
30
|
-
{
|
|
31
|
-
key: "messagePrefix",
|
|
32
|
-
label: "Message Prefix",
|
|
33
|
-
kind: "string",
|
|
34
|
-
description: "Only dispatch user messages that start with this exact prefix after any leading @mentions. The prefix is removed before the task runs"
|
|
35
|
-
},
|
|
36
30
|
{
|
|
37
31
|
key: "senderPolicy",
|
|
38
32
|
label: "Sender Policy",
|
|
@@ -255,15 +249,15 @@ function ensureBuiltins() {
|
|
|
255
249
|
if (!builtinsPromise) {
|
|
256
250
|
builtinsPromise = (async () => {
|
|
257
251
|
const labelled = [
|
|
258
|
-
{ name: "telegram", promise: import("./dist-
|
|
259
|
-
{ name: "weixin", promise: import("./dist-
|
|
260
|
-
{ name: "dingtalk", promise: import("./dist-
|
|
261
|
-
{ name: "dws", promise: import("./dist-
|
|
262
|
-
{ name: "wecom", promise: import("./dist-
|
|
263
|
-
{ name: "feishu", promise: import("./dist-
|
|
264
|
-
{ name: "qqbot", promise: import("./dist-
|
|
265
|
-
{ name: "github", promise: import("./dist-
|
|
266
|
-
{ name: "gitlab", promise: import("./dist-
|
|
252
|
+
{ name: "telegram", promise: import("./dist-T6DDPDLQ.js") },
|
|
253
|
+
{ name: "weixin", promise: import("./dist-GUB7QRYA.js") },
|
|
254
|
+
{ name: "dingtalk", promise: import("./dist-SE4J6Z4O.js") },
|
|
255
|
+
{ name: "dws", promise: import("./dist-NIOJXMGY.js") },
|
|
256
|
+
{ name: "wecom", promise: import("./dist-2QYIVNS6.js") },
|
|
257
|
+
{ name: "feishu", promise: import("./dist-PA7WPFVE.js") },
|
|
258
|
+
{ name: "qqbot", promise: import("./dist-TFGETXFN.js") },
|
|
259
|
+
{ name: "github", promise: import("./dist-MPUZZOG5.js") },
|
|
260
|
+
{ name: "gitlab", promise: import("./dist-VDLSBCLM.js") }
|
|
267
261
|
];
|
|
268
262
|
const results = await Promise.allSettled(labelled.map((l) => l.promise));
|
|
269
263
|
for (let i = 0; i < results.length; i++) {
|
|
@@ -3,6 +3,12 @@
|
|
|
3
3
|
import {
|
|
4
4
|
getLanguageSettingsOptions
|
|
5
5
|
} from "./chunk-5EJZE3FP.js";
|
|
6
|
+
import {
|
|
7
|
+
DEFAULT_WEB_SEARCH_MAX_PER_SESSION,
|
|
8
|
+
DEFAULT_WEB_SEARCH_TIMEOUT_MS,
|
|
9
|
+
MAX_WEB_SEARCH_MAX_PER_SESSION,
|
|
10
|
+
MAX_WEB_SEARCH_TIMEOUT_MS
|
|
11
|
+
} from "./chunk-WDH4TVD3.js";
|
|
6
12
|
import {
|
|
7
13
|
DEFAULT_MAX_SUBAGENT_DEPTH,
|
|
8
14
|
DEFAULT_MAX_TOOL_CALLS_PER_TURN,
|
|
@@ -11,18 +17,20 @@ import {
|
|
|
11
17
|
DEFAULT_TOOL_RESULTS_TOTAL_CHARS_THRESHOLD,
|
|
12
18
|
DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES,
|
|
13
19
|
DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD,
|
|
14
|
-
GOAL_CHECKPOINT_TIMEOUT_SECONDS_CAP
|
|
15
|
-
|
|
20
|
+
GOAL_CHECKPOINT_TIMEOUT_SECONDS_CAP,
|
|
21
|
+
GOAL_MAX_ACTIVE_MINUTES_CAP,
|
|
22
|
+
GOAL_MAX_TURNS_CAP
|
|
23
|
+
} from "./chunk-KJFGH23C.js";
|
|
16
24
|
import {
|
|
17
25
|
DEFAULT_QWEN_CUSTOM_IGNORE_FILE_NAMES
|
|
18
26
|
} from "./chunk-IZ2U57NY.js";
|
|
19
27
|
import {
|
|
20
28
|
REASONING_EFFORT_TIERS
|
|
21
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-ARDHE6MM.js";
|
|
22
30
|
import {
|
|
23
31
|
DEFAULT_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH,
|
|
24
32
|
SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH_LIMIT
|
|
25
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-4Y2I3CI3.js";
|
|
26
34
|
import {
|
|
27
35
|
init_esbuild_shims
|
|
28
36
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -97,6 +105,10 @@ var TOGGLE_TYPES = /* @__PURE__ */ new Set([
|
|
|
97
105
|
"boolean",
|
|
98
106
|
"enum"
|
|
99
107
|
]);
|
|
108
|
+
function isNumericSettingType(type) {
|
|
109
|
+
return type === "number" || type === "integer";
|
|
110
|
+
}
|
|
111
|
+
__name(isNumericSettingType, "isNumericSettingType");
|
|
100
112
|
var HOOK_DEFINITION_ITEMS = {
|
|
101
113
|
type: "object",
|
|
102
114
|
description: "A hook definition with an optional matcher and a list of hook configurations.",
|
|
@@ -159,7 +171,7 @@ var HOOK_DEFINITION_ITEMS = {
|
|
|
159
171
|
},
|
|
160
172
|
timeout: {
|
|
161
173
|
type: "number",
|
|
162
|
-
description: "Timeout in seconds for the hook execution."
|
|
174
|
+
description: "Timeout in seconds for the hook execution. Defaults to 60 for command hooks, 600 for http hooks and 30 for prompt hooks. For command hooks, a value of 1000 or more is read as legacy milliseconds."
|
|
163
175
|
},
|
|
164
176
|
env: {
|
|
165
177
|
type: "object",
|
|
@@ -1058,6 +1070,15 @@ var SETTINGS_SCHEMA = {
|
|
|
1058
1070
|
description: "Enable in-app SGR mouse tracking. While enabled, Qwen Code captures mouse events for text selection, click-to-position in text inputs, row hover, history-item toggling, and viewport scrolling. Because the terminal forwards all mouse events to the app, Qwen Code supplies its own equivalents for what the terminal can no longer do natively: a single click opens an http(s) hyperlink under the pointer (other link schemes are copied to the clipboard), and right-click over a link or a text selection opens an in-app context menu with Open Link / Copy Link Address / Copy Selection. Disable to hand the mouse fully back to the terminal (native right-click menu and link clicks); this turns off all in-app mouse interaction, and in Virtualized History the wheel no longer scrolls the transcript \u2014 use Shift+\u2191/\u2193, PgUp/PgDn, or Ctrl+Home/End instead (pair with ui.useTerminalBuffer: false to restore native terminal scrollback).",
|
|
1059
1071
|
showInDialog: true
|
|
1060
1072
|
},
|
|
1073
|
+
showToolCallDetails: {
|
|
1074
|
+
type: "boolean",
|
|
1075
|
+
label: "Show Tool Call Details",
|
|
1076
|
+
category: "UI",
|
|
1077
|
+
requiresRestart: false,
|
|
1078
|
+
default: true,
|
|
1079
|
+
description: "Show tool arguments and results inline. Disable to render ordinary tool calls as a one-line summary; click a summary in Virtualized History or press Ctrl+O to expand its details. Approval prompts, user-initiated shell commands, and focused interactive shells remain expanded.",
|
|
1080
|
+
showInDialog: true
|
|
1081
|
+
},
|
|
1061
1082
|
showToolCallArgs: {
|
|
1062
1083
|
type: "boolean",
|
|
1063
1084
|
label: "Show Tool Call Arguments",
|
|
@@ -1440,6 +1461,30 @@ var SETTINGS_SCHEMA = {
|
|
|
1440
1461
|
description: "Autonomous spend window armed on each new Goal, in tokens as counted by the Goal meter (totalTokenCount summed over every model call the Goal makes in its own turns; side queries and checkpoint verification are not metered). When a Goal spends its window it gets one wind-down turn to hand off, then stops until you resume it, which arms another window. Unset uses the built-in default of 30,000,000; -1 means unlimited. Zero, values above 300,000,000 (10x the default, a typo guard), other negative, fractional, or non-number values are rejected at startup.",
|
|
1441
1462
|
showInDialog: false
|
|
1442
1463
|
},
|
|
1464
|
+
goalMaxTurns: {
|
|
1465
|
+
type: "integer",
|
|
1466
|
+
label: "Goal Max Turns",
|
|
1467
|
+
category: "Model",
|
|
1468
|
+
requiresRestart: true,
|
|
1469
|
+
default: void 0,
|
|
1470
|
+
description: "Goal-turn window armed on each new Goal. Every finished Goal turn counts, including user-driven turns; user turns are still admitted at the ceiling, but they can make the next autonomous continuation a wind-down. A Goal that reaches the ceiling gets one wind-down turn to hand off, then stops until you resume it, which authorizes another window on top of the turns already finished. Unset runs Goals with no turn ceiling, and -1 says so explicitly -- but the opt-out only takes a ceiling off a Goal that has already spent it, on the resume or edit that follows; a Goal still under its ceiling keeps it. A ceiling is armed only on a Goal created after the change, so bounding a Goal already on the record means replacing it with /goal set, which starts a new Goal at revision 1 with its meters reset and its earlier evidence no longer citable, or clearing it and starting again. Zero, values above 10,000, other negative, fractional, or non-number values are rejected at startup. Changes take effect after restart.",
|
|
1471
|
+
showInDialog: false,
|
|
1472
|
+
minimum: -1,
|
|
1473
|
+
maximum: GOAL_MAX_TURNS_CAP,
|
|
1474
|
+
excludedValues: [0]
|
|
1475
|
+
},
|
|
1476
|
+
goalMaxActiveMinutes: {
|
|
1477
|
+
type: "integer",
|
|
1478
|
+
label: "Goal Max Active Minutes",
|
|
1479
|
+
category: "Model",
|
|
1480
|
+
requiresRestart: true,
|
|
1481
|
+
default: void 0,
|
|
1482
|
+
description: "Active-time window armed on each new Goal, in minutes of wall time while the Goal remains active, including waits and idle time between turns. Paused, blocked or stopped time does not count, nor does downtime across a restart; a suspended process is still charged. A Goal that reaches the ceiling gets one wind-down turn to hand off, then stops until you resume it, which authorizes another window. The ceiling is read between turns, not by a timer, so a Goal can run well past it before it stops. Active time is measured between recorded transitions, so time in a turn that a restart interrupted is not charged. Unset runs Goals with no time ceiling, and -1 says so explicitly -- but the opt-out only takes a ceiling off a Goal that has already spent it, on the resume or edit that follows. A ceiling is armed only on a Goal created after the change, so bounding a Goal already on the record means replacing it with /goal set, which starts a new Goal at revision 1 with its meters reset and its earlier evidence no longer citable, or clearing it and starting again. Zero, values above 10,080 (one week), other negative, fractional, or non-number values are rejected at startup. Changes take effect after restart.",
|
|
1483
|
+
showInDialog: false,
|
|
1484
|
+
minimum: -1,
|
|
1485
|
+
maximum: GOAL_MAX_ACTIVE_MINUTES_CAP,
|
|
1486
|
+
excludedValues: [0]
|
|
1487
|
+
},
|
|
1443
1488
|
goalCheckpointTimeoutSeconds: {
|
|
1444
1489
|
type: "integer",
|
|
1445
1490
|
label: "Goal Checkpoint Timeout (seconds)",
|
|
@@ -1448,7 +1493,7 @@ var SETTINGS_SCHEMA = {
|
|
|
1448
1493
|
default: void 0,
|
|
1449
1494
|
minimum: 1,
|
|
1450
1495
|
maximum: GOAL_CHECKPOINT_TIMEOUT_SECONDS_CAP,
|
|
1451
|
-
description: "Ceiling on one Goal evidence-checkpoint
|
|
1496
|
+
description: "Ceiling on one Goal evidence-checkpoint model call, in seconds. A long Goal periodically compresses its evidence into checkpoint claims with a side model call; when a call makes its one corrective retry, both requests share this ceiling (docs/users/features/goals.md lists which failures earn one). A check on an overflowing window after a stalled checkpoint sends its evidence in batches, one call per batch, each under its own ceiling. A check that does not finish in time is abandoned as inconclusive; it counts toward the checkpoint stall limit only when the evidence window has overflowed, while a non-overflowing check preserves the streak and retries on a later turn. Unset uses the built-in default of 180. Must be an integer between 1 and 900; other values are rejected at startup. The calls are streamed, so the per-request transport timeout (model.generationConfig.timeout, default 120 s) bounds only connect and first response, and values above 900 are rejected because past the default stream lifetime guard that guard, not this setting, ends the check. The 900 ceiling is fixed: raising QWEN_STREAM_MAX_LIFETIME_MS does not lift it.",
|
|
1452
1497
|
showInDialog: false
|
|
1453
1498
|
},
|
|
1454
1499
|
maxToolCalls: {
|
|
@@ -2011,7 +2056,7 @@ var SETTINGS_SCHEMA = {
|
|
|
2011
2056
|
category: "Advanced",
|
|
2012
2057
|
requiresRestart: true,
|
|
2013
2058
|
default: void 0,
|
|
2014
|
-
description: 'Slash command names to hide and refuse to execute. Matched case-insensitively against the final command name (for extension commands this is the disambiguated form, e.g. "myext.deploy"). Merged as a union across settings scopes, so workspace settings can add to but not remove entries defined in system/user settings.',
|
|
2059
|
+
description: 'Slash command names to hide and refuse to execute. Matched case-insensitively against the final command name (for extension commands this is the disambiguated form, e.g. "myext.deploy"), except that a skill command is gated under either spelling \u2014 its registered name (rust:pdf) or the name its SKILL.md authors (pdf) \u2014 so an entry written before that prefix existed still gates it. Merged as a union across settings scopes, so workspace settings can add to but not remove entries defined in system/user settings.',
|
|
2015
2060
|
showInDialog: false,
|
|
2016
2061
|
mergeStrategy: "union" /* UNION */
|
|
2017
2062
|
}
|
|
@@ -2046,7 +2091,7 @@ var SETTINGS_SCHEMA = {
|
|
|
2046
2091
|
category: "Advanced",
|
|
2047
2092
|
requiresRestart: false,
|
|
2048
2093
|
default: void 0,
|
|
2049
|
-
description: "Skill names to hide. Matched case-insensitively against the skill name. Hidden skills do not appear in <available_skills> or as /<name> slash commands. UNION-merged across systemDefaults/user/workspace/system scopes \u2014 workspace cannot remove entries defined in higher scopes.",
|
|
2094
|
+
description: "Skill names to hide. Matched case-insensitively against the skill name. Hidden skills do not appear in <available_skills> or as /<name> slash commands. An extension skill matches under either its registered name (rust:pdf) or the name its SKILL.md authors (pdf), so an entry written before that prefix existed still blocks it. UNION-merged across systemDefaults/user/workspace/system scopes \u2014 workspace cannot remove entries defined in higher scopes.",
|
|
2050
2095
|
showInDialog: false,
|
|
2051
2096
|
mergeStrategy: "union" /* UNION */
|
|
2052
2097
|
},
|
|
@@ -2056,7 +2101,7 @@ var SETTINGS_SCHEMA = {
|
|
|
2056
2101
|
category: "Advanced",
|
|
2057
2102
|
requiresRestart: false,
|
|
2058
2103
|
default: void 0,
|
|
2059
|
-
description: "Skill names disabled by default unless explicitly enabled through skills.enabled. Matched case-insensitively and UNION-merged across settings scopes. skills.disabled always wins.",
|
|
2104
|
+
description: "Skill names disabled by default unless explicitly enabled through skills.enabled. Matched case-insensitively and UNION-merged across settings scopes. An extension skill is disabled under either its registered name (rust:pdf) or the name its SKILL.md authors (pdf). skills.disabled always wins; skills.enabled cancels an entry here only when the two lists spell the name the same way.",
|
|
2060
2105
|
showInDialog: false,
|
|
2061
2106
|
mergeStrategy: "union" /* UNION */
|
|
2062
2107
|
},
|
|
@@ -2066,7 +2111,7 @@ var SETTINGS_SCHEMA = {
|
|
|
2066
2111
|
category: "Advanced",
|
|
2067
2112
|
requiresRestart: false,
|
|
2068
2113
|
default: void 0,
|
|
2069
|
-
description: "Explicit opt-ins
|
|
2114
|
+
description: "Explicit opt-ins, matched against the skill name as registered \u2014 an extension skill is rust:pdf there. An entry spelled as the registered name overrides a matching skills.defaultDisabled entry and, for an extension skill, both the default the owning extension declares and the enablement stored for this workspace. A bare pdf entry never matches as a grant; it only cancels an identically-spelled skills.defaultDisabled entry, and once cancelled the enablement stored for this workspace decides, else the default the owning extension declares. Matched case-insensitively and UNION-merged across settings scopes. Cannot override skills.disabled or re-enable skills from a skills.disabledLevels-excluded level.",
|
|
2070
2115
|
showInDialog: false,
|
|
2071
2116
|
mergeStrategy: "union" /* UNION */
|
|
2072
2117
|
},
|
|
@@ -2293,6 +2338,15 @@ var SETTINGS_SCHEMA = {
|
|
|
2293
2338
|
description: "Settings for built-in and custom tools.",
|
|
2294
2339
|
showInDialog: false,
|
|
2295
2340
|
properties: {
|
|
2341
|
+
codeModeOnly: {
|
|
2342
|
+
type: "boolean",
|
|
2343
|
+
label: "Code Mode Only (Experimental)",
|
|
2344
|
+
category: "Tools",
|
|
2345
|
+
requiresRestart: true,
|
|
2346
|
+
default: false,
|
|
2347
|
+
description: "Expose ordinary tools to the model only through the isolated exec JavaScript tool. Direct control tools remain available. Ignored in safe and bare modes.",
|
|
2348
|
+
showInDialog: true
|
|
2349
|
+
},
|
|
2296
2350
|
sandbox: {
|
|
2297
2351
|
type: "object",
|
|
2298
2352
|
label: "Sandbox",
|
|
@@ -2320,7 +2374,7 @@ var SETTINGS_SCHEMA = {
|
|
|
2320
2374
|
category: "Tools",
|
|
2321
2375
|
requiresRestart: true,
|
|
2322
2376
|
default: {},
|
|
2323
|
-
description: "Settings for the built-in WebSearch tool (DashScope Responses API backend). On by default at startup for Alibaba ModelStudio Standard API Key / Token Plan and OpenAI-compatible entries on recognized DashScope Responses hosts with a direct key; set enabled=false to turn it off. Which providers can activate the tool is decided at startup; once active, the search backend follows the currently selected model on the next search. Fully env-configurable for environments without settings.json: ENABLE_WEB_SEARCH, WEB_SEARCH_MODEL, WEB_SEARCH_BASE_URL, WEB_SEARCH_API_KEY (falls back to DASHSCOPE_API_KEY), WEB_SEARCH_EXTRACTOR. Note: baseUrl and API key are env-only (WEB_SEARCH_BASE_URL / WEB_SEARCH_API_KEY) and cannot be set in settings.json.",
|
|
2377
|
+
description: "Settings for the built-in WebSearch tool (DashScope Responses API backend). On by default at startup for Alibaba ModelStudio Standard API Key / Token Plan and OpenAI-compatible entries on recognized DashScope Responses hosts with a direct key; set enabled=false to turn it off. Which providers can activate the tool is decided at startup; once active, the search backend follows the currently selected model on the next search. Fully env-configurable for environments without settings.json: ENABLE_WEB_SEARCH, WEB_SEARCH_MODEL, WEB_SEARCH_BASE_URL, WEB_SEARCH_API_KEY (falls back to DASHSCOPE_API_KEY), WEB_SEARCH_EXTRACTOR, WEB_SEARCH_TIMEOUT_MS, WEB_SEARCH_MAX_PER_SESSION. Note: baseUrl and API key are env-only (WEB_SEARCH_BASE_URL / WEB_SEARCH_API_KEY) and cannot be set in settings.json.",
|
|
2324
2378
|
showInDialog: false,
|
|
2325
2379
|
properties: {
|
|
2326
2380
|
enabled: {
|
|
@@ -2338,7 +2392,7 @@ var SETTINGS_SCHEMA = {
|
|
|
2338
2392
|
category: "Tools",
|
|
2339
2393
|
requiresRestart: true,
|
|
2340
2394
|
default: void 0,
|
|
2341
|
-
description: 'Model selector for the explicit search path ("modelId" or "authType:modelId"). With WEB_SEARCH_BASE_URL it is the plain model id for that endpoint; otherwise it must match a DashScope-compatible modelProviders entry with an envKey. The automatic path uses qwen3.
|
|
2395
|
+
description: 'Model selector for the explicit search path ("modelId" or "authType:modelId"). With WEB_SEARCH_BASE_URL it is the plain model id for that endpoint; otherwise it must match a DashScope-compatible modelProviders entry with an envKey. The automatic path uses qwen3.8-flash. Env override: WEB_SEARCH_MODEL.',
|
|
2342
2396
|
showInDialog: true
|
|
2343
2397
|
},
|
|
2344
2398
|
webExtractor: {
|
|
@@ -2349,6 +2403,28 @@ var SETTINGS_SCHEMA = {
|
|
|
2349
2403
|
default: true,
|
|
2350
2404
|
description: "Let the search agent open and read result pages (DashScope web_extractor) for better-grounded answers. Billed separately by DashScope. Env override: WEB_SEARCH_EXTRACTOR.",
|
|
2351
2405
|
showInDialog: true
|
|
2406
|
+
},
|
|
2407
|
+
timeoutMs: {
|
|
2408
|
+
type: "integer",
|
|
2409
|
+
label: "Search Timeout (ms)",
|
|
2410
|
+
category: "Tools",
|
|
2411
|
+
requiresRestart: true,
|
|
2412
|
+
default: void 0,
|
|
2413
|
+
minimum: 1,
|
|
2414
|
+
maximum: MAX_WEB_SEARCH_TIMEOUT_MS,
|
|
2415
|
+
description: `Total time budget for one web_search call, in milliseconds (default ${DEFAULT_WEB_SEARCH_TIMEOUT_MS}, max ${MAX_WEB_SEARCH_TIMEOUT_MS}; other values fall back to the default). The search agent runs several queries and may open result pages; a search that exceeds the budget returns whatever arrived as a partial result once at least one search call has completed \u2014 if the budget expires before the first search call finishes, the tool reports a timeout error instead, because narration with no executed search is not auditable evidence. A per-tool execution cap (QWEN_CODE_TOOL_EXECUTION_TIMEOUT_MS) below this budget fires first and discards the partial result; keep it above timeoutMs. Env override: WEB_SEARCH_TIMEOUT_MS.`,
|
|
2416
|
+
showInDialog: true
|
|
2417
|
+
},
|
|
2418
|
+
maxPerSession: {
|
|
2419
|
+
type: "integer",
|
|
2420
|
+
label: "Max Searches per Session",
|
|
2421
|
+
category: "Tools",
|
|
2422
|
+
requiresRestart: true,
|
|
2423
|
+
default: void 0,
|
|
2424
|
+
minimum: 1,
|
|
2425
|
+
maximum: MAX_WEB_SEARCH_MAX_PER_SESSION,
|
|
2426
|
+
description: `Maximum web_search calls in one session (default ${DEFAULT_WEB_SEARCH_MAX_PER_SESSION}, max ${MAX_WEB_SEARCH_MAX_PER_SESSION}; other values fall back to the default). The count is shared with subagents and resets when the session changes (/clear, /resume, branching). Once it is reached, further searches are skipped and the model is told to continue with what it has gathered. Env override: WEB_SEARCH_MAX_PER_SESSION.`,
|
|
2427
|
+
showInDialog: true
|
|
2352
2428
|
}
|
|
2353
2429
|
}
|
|
2354
2430
|
},
|
|
@@ -3386,6 +3462,61 @@ var SETTINGS_SCHEMA = {
|
|
|
3386
3462
|
showInDialog: false,
|
|
3387
3463
|
mergeStrategy: "concat" /* CONCAT */,
|
|
3388
3464
|
items: HOOK_DEFINITION_ITEMS
|
|
3465
|
+
},
|
|
3466
|
+
PostCompact: {
|
|
3467
|
+
type: "array",
|
|
3468
|
+
label: "Post Compact Hooks",
|
|
3469
|
+
category: "Advanced",
|
|
3470
|
+
requiresRestart: false,
|
|
3471
|
+
default: [],
|
|
3472
|
+
description: "Hooks that execute after conversation compaction completes.",
|
|
3473
|
+
showInDialog: false,
|
|
3474
|
+
mergeStrategy: "concat" /* CONCAT */,
|
|
3475
|
+
items: HOOK_DEFINITION_ITEMS
|
|
3476
|
+
},
|
|
3477
|
+
PermissionDenied: {
|
|
3478
|
+
type: "array",
|
|
3479
|
+
label: "Permission Denied Hooks",
|
|
3480
|
+
category: "Advanced",
|
|
3481
|
+
requiresRestart: false,
|
|
3482
|
+
default: [],
|
|
3483
|
+
description: "Hooks that execute when AUTO-mode classification denies a tool call.",
|
|
3484
|
+
showInDialog: false,
|
|
3485
|
+
mergeStrategy: "concat" /* CONCAT */,
|
|
3486
|
+
items: HOOK_DEFINITION_ITEMS
|
|
3487
|
+
},
|
|
3488
|
+
TodoCreated: {
|
|
3489
|
+
type: "array",
|
|
3490
|
+
label: "Todo Created Hooks",
|
|
3491
|
+
category: "Advanced",
|
|
3492
|
+
requiresRestart: false,
|
|
3493
|
+
default: [],
|
|
3494
|
+
description: "Hooks that execute when a new todo item is created. They can block creation during validation.",
|
|
3495
|
+
showInDialog: false,
|
|
3496
|
+
mergeStrategy: "concat" /* CONCAT */,
|
|
3497
|
+
items: HOOK_DEFINITION_ITEMS
|
|
3498
|
+
},
|
|
3499
|
+
TodoCompleted: {
|
|
3500
|
+
type: "array",
|
|
3501
|
+
label: "Todo Completed Hooks",
|
|
3502
|
+
category: "Advanced",
|
|
3503
|
+
requiresRestart: false,
|
|
3504
|
+
default: [],
|
|
3505
|
+
description: "Hooks that execute when a todo item is marked as completed. They can block completion during validation.",
|
|
3506
|
+
showInDialog: false,
|
|
3507
|
+
mergeStrategy: "concat" /* CONCAT */,
|
|
3508
|
+
items: HOOK_DEFINITION_ITEMS
|
|
3509
|
+
},
|
|
3510
|
+
InstructionsLoaded: {
|
|
3511
|
+
type: "array",
|
|
3512
|
+
label: "Instructions Loaded Hooks",
|
|
3513
|
+
category: "Advanced",
|
|
3514
|
+
requiresRestart: false,
|
|
3515
|
+
default: [],
|
|
3516
|
+
description: "Hooks that execute when an instruction file such as QWEN.md is loaded into context.",
|
|
3517
|
+
showInDialog: false,
|
|
3518
|
+
mergeStrategy: "concat" /* CONCAT */,
|
|
3519
|
+
items: HOOK_DEFINITION_ITEMS
|
|
3389
3520
|
}
|
|
3390
3521
|
}
|
|
3391
3522
|
},
|
|
@@ -3706,6 +3837,7 @@ export {
|
|
|
3706
3837
|
customDeepMerge,
|
|
3707
3838
|
DEFAULT_OPENAI_LOG_RETENTION_DAYS,
|
|
3708
3839
|
TOGGLE_TYPES,
|
|
3840
|
+
isNumericSettingType,
|
|
3709
3841
|
getSettingsSchema
|
|
3710
3842
|
};
|
|
3711
3843
|
/**
|
|
@@ -5,13 +5,13 @@ import {
|
|
|
5
5
|
} from "./chunk-ELRMZTPF.js";
|
|
6
6
|
import {
|
|
7
7
|
isSubagentLikeExecutionContext
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-AEWCOE64.js";
|
|
9
9
|
import {
|
|
10
10
|
BaseDeclarativeTool,
|
|
11
11
|
BaseToolInvocation,
|
|
12
12
|
ToolDisplayNames,
|
|
13
13
|
ToolNames
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-RSWBT7AZ.js";
|
|
15
15
|
import {
|
|
16
16
|
init_esbuild_shims
|
|
17
17
|
} from "./chunk-5O2XNYP6.js";
|