@qwen-code/qwen-code 0.22.0 → 0.22.2-nightly.20260828.7357136dd1
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 +229 -0
- package/bundled/computer-use/agents/openai.yaml +4 -0
- package/bundled/coordinate/SKILL.md +5 -5
- package/bundled/goal-draft/SKILL.md +109 -0
- package/bundled/qc-helper/docs/configuration/auth.md +7 -7
- package/bundled/qc-helper/docs/configuration/model-providers.md +70 -9
- package/bundled/qc-helper/docs/configuration/settings.md +48 -48
- package/bundled/qc-helper/docs/extension/introduction.md +3 -1
- package/bundled/qc-helper/docs/features/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/channels/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +12 -0
- package/bundled/qc-helper/docs/features/channels/dws.md +120 -0
- package/bundled/qc-helper/docs/features/channels/overview.md +37 -6
- package/bundled/qc-helper/docs/features/code-review.md +27 -23
- package/bundled/qc-helper/docs/features/commands.md +4 -3
- package/bundled/qc-helper/docs/features/computer-use.md +57 -51
- package/bundled/qc-helper/docs/features/goals.md +58 -0
- package/bundled/qc-helper/docs/features/headless.md +13 -11
- package/bundled/qc-helper/docs/features/mcp.md +35 -12
- package/bundled/qc-helper/docs/features/status-line.md +3 -3
- package/bundled/qc-helper/docs/features/sub-agents.md +1 -1
- package/bundled/qc-helper/docs/features/worktree.md +1 -1
- package/bundled/qc-helper/docs/overview.md +1 -1
- package/bundled/qc-helper/docs/quickstart.md +1 -1
- package/bundled/qc-helper/docs/qwen-serve.md +29 -6
- package/bundled/review/SKILL.md +185 -435
- package/bundled/review/references/aone.md +18 -0
- package/bundled/review/references/persistence.md +109 -0
- package/bundled/review/references/posting.md +272 -0
- package/chunks/MaxSizedBox-LMWXCLDV.js +110 -0
- package/chunks/{StandaloneSessionPicker-KTHPCSR6.js → StandaloneSessionPicker-W3F7U3JL.js} +87 -88
- package/chunks/{acp-startup-profiler-T4GEAPLX.js → acp-startup-profiler-GNYAL6LI.js} +2 -2
- package/chunks/{acpAgent-CRY3JZ5O.js → acpAgent-EYZ6EEHD.js} +3223 -2145
- package/chunks/agent-RBLGBY65.js +95 -0
- package/chunks/agent-headless-L5T4Y4OZ.js +85 -0
- package/chunks/{anthropicContentGenerator-Y2OX6LS4.js → anthropicContentGenerator-GMHML35Q.js} +128 -59
- package/chunks/{artifact-tool-SBXMTVCB.js → artifact-tool-XSMPHZBT.js} +11 -3
- package/chunks/{askUserQuestion-KEQJRFD6.js → askUserQuestion-4SWJY65V.js} +2 -2
- package/chunks/bridge-5LR2F2ND.js +119 -0
- package/chunks/{ca-D3F4S6NG.js → ca-7HPYOYSZ.js} +3 -0
- package/chunks/{channel-management-service-IRTT7RNE.js → channel-management-service-KHR3N6CH.js} +6 -6
- package/chunks/channel-settings-store-4FOAZW72.js +120 -0
- package/chunks/{channel-worker-group-BJNMR2MP.js → channel-worker-group-6NA6BBZV.js} +9 -7
- package/chunks/{channel-worker-manager-EMA7CQDJ.js → channel-worker-manager-NEZ2J6RK.js} +11 -8
- package/chunks/{channel-worker-supervisor-F6I6WSWW.js → channel-worker-supervisor-FKU7DIHJ.js} +12 -6
- package/chunks/{chunk-HDKCKCYO.js → chunk-23RFD54N.js} +1 -1
- package/chunks/{read-package-up-UXSW3YPB.js → chunk-2EAZ43JQ.js} +1 -0
- package/chunks/{chunk-KM73TBQ4.js → chunk-2LD5U7Q3.js} +31 -0
- package/chunks/{chunk-GIWB5QLV.js → chunk-2SXSLSQE.js} +4 -4
- package/chunks/chunk-2TNL5KPM.js +49 -0
- package/chunks/chunk-335CJSNF.js +2320 -0
- package/chunks/chunk-36LGBEM6.js +130 -0
- package/chunks/{chunk-O5BDEWBC.js → chunk-3JXM2CVW.js} +3 -3
- package/chunks/{chunk-2E3V7G6Y.js → chunk-3K6TUZHS.js} +55 -50
- package/chunks/{chunk-WWUSHZ7M.js → chunk-3OOXT6CR.js} +5 -5
- package/chunks/{chunk-2UZJWSVD.js → chunk-3WK3QDNV.js} +2 -2
- package/chunks/{chunk-4J7OPYNS.js → chunk-3XOKEVII.js} +6 -6
- package/chunks/chunk-3Y34Q3JV.js +1584 -0
- package/chunks/{chunk-YMVFIYHV.js → chunk-42IDLQWS.js} +26 -20
- package/chunks/{chunk-7HFULI45.js → chunk-454XFGH4.js} +3 -3
- package/chunks/chunk-4CMJKUND.js +95 -0
- package/chunks/{chunk-XLDFW44M.js → chunk-4K7KNVWH.js} +3 -3
- package/chunks/{chunk-YDJRMQU4.js → chunk-4QHPPXK2.js} +16 -8
- package/chunks/{chunk-7KOFLDEP.js → chunk-5JTIYALA.js} +1 -1
- package/chunks/{chunk-CXJHQVEK.js → chunk-5PA6UEYA.js} +4 -0
- package/chunks/{chunk-7NBVNAJJ.js → chunk-62GQFYID.js} +3 -3
- package/chunks/{chunk-JGUBDRBC.js → chunk-6DIGWMGT.js} +3 -3
- package/chunks/{chunk-X7V3N6YH.js → chunk-6JCGO55P.js} +885 -3380
- package/chunks/{chunk-HIK2OF33.js → chunk-6PJOTWAN.js} +1 -1
- package/chunks/{chunk-VUMLT7E5.js → chunk-6W2IK5KC.js} +956 -17
- package/chunks/{chunk-S4C4JJKE.js → chunk-6ZZBRRKQ.js} +5 -5
- package/chunks/{chunk-W4CRPSC5.js → chunk-7EQQR46F.js} +1 -1
- package/chunks/{chunk-PHJJ3RVO.js → chunk-7GWQW5ID.js} +7 -15
- package/chunks/chunk-7J6OTNGO.js +424 -0
- package/chunks/{chunk-URN2JIAQ.js → chunk-7TUBJBBJ.js} +5 -1
- package/chunks/{chunk-A5F63FEW.js → chunk-7VD6IPQM.js} +1 -1
- package/chunks/{chunk-36OF5PRW.js → chunk-ABS25QER.js} +7 -3
- package/chunks/{chunk-UU4WC7DK.js → chunk-AJGR6E6Z.js} +117 -30
- package/chunks/{chunk-MQP3MHWN.js → chunk-AU3MMVJF.js} +43 -20
- package/chunks/{chunk-ZS5BHEPD.js → chunk-AXC26UCQ.js} +1 -1
- package/chunks/{chunk-PDL6LKB5.js → chunk-AY3BNYEQ.js} +1 -1
- package/chunks/{chunk-O5Z7EB6Y.js → chunk-AYHQZBJ4.js} +170 -207
- package/chunks/{chunk-WRT324N6.js → chunk-B466ZSHZ.js} +3 -3
- package/chunks/{chunk-5XHAOUWD.js → chunk-B5OUL5EL.js} +3 -3
- package/chunks/{chunk-GAHYKJPV.js → chunk-B5PHIJGI.js} +186 -60
- package/chunks/{chunk-IBJ5S45N.js → chunk-B7CDU2SL.js} +2 -2
- package/chunks/{chunk-UZPYR3EV.js → chunk-BFPESSTR.js} +1 -1
- package/chunks/{chunk-43T5WDQ7.js → chunk-BFSFJR3D.js} +1 -1
- package/chunks/{chunk-IWOWEENB.js → chunk-BKWNKLZB.js} +404 -44
- package/chunks/{chunk-3CLIDIVQ.js → chunk-BOWFGCEU.js} +3 -3
- package/chunks/{chunk-BB5IMQCV.js → chunk-BPAKYXQ3.js} +2 -2
- package/chunks/{chunk-ZRYQMWEP.js → chunk-BWORX6FA.js} +2 -2
- package/chunks/{chunk-AP3B7LKD.js → chunk-BXDAPVQU.js} +2 -2
- package/chunks/{chunk-NUGZAFR2.js → chunk-C2X7KY45.js} +147 -6
- package/chunks/{chunk-MZKWFWVG.js → chunk-C3KURPP7.js} +6 -6
- package/chunks/{chunk-WZDM44SB.js → chunk-CAJTKR6W.js} +7 -7
- package/chunks/{chunk-DB2OKNTU.js → chunk-CFJY4DGX.js} +2 -2
- package/chunks/{chunk-QKBYFU2Q.js → chunk-CFKIH3D3.js} +21 -1
- package/chunks/{chunk-I432KXWD.js → chunk-CMHFCLBU.js} +1 -1
- package/chunks/{create-sub-session-XBCVGNFU.js → chunk-CQH5KTKC.js} +4 -6
- package/chunks/{chunk-5HJUPACR.js → chunk-CRKKHXTI.js} +185 -174
- package/chunks/{chunk-L4HVF7LM.js → chunk-CYAUBK46.js} +3 -3
- package/chunks/{chunk-AZF6SME3.js → chunk-D5LUXLUH.js} +3 -3
- package/chunks/{chunk-RPJQ3O4M.js → chunk-DFDWJE6Z.js} +60 -53
- package/chunks/{chunk-KSPRQSB4.js → chunk-DIMEPKCW.js} +52 -12
- package/chunks/chunk-DJBQCO2E.js +842 -0
- package/chunks/{chunk-OVH5Y7KS.js → chunk-DP4MWIM3.js} +19 -3
- package/chunks/{chunk-LI4YHTQK.js → chunk-DYXFD5RO.js} +182 -3
- package/chunks/{chunk-NW35NVFN.js → chunk-E3XVSVKK.js} +26 -4
- package/chunks/{chunk-VSNPOSDN.js → chunk-EB6QRGHM.js} +108 -13
- package/chunks/{chunk-FVBVJEBG.js → chunk-EKNBU2X7.js} +10 -8
- package/chunks/{chunk-DJEHYM4H.js → chunk-EKSCLBBF.js} +3 -3
- package/chunks/{chunk-624NHDGB.js → chunk-ERFDKH32.js} +11 -0
- package/chunks/chunk-EW5VVLJT.js +3525 -0
- package/chunks/{chunk-T6XLJRQY.js → chunk-EWIQ3NAE.js} +38774 -6955
- package/chunks/{chunk-4XPSVIED.js → chunk-FALBWZF4.js} +6 -6
- package/chunks/chunk-FBX2SDQ4.js +48 -0
- package/chunks/{chunk-VMJL7RH6.js → chunk-FEHMA4RO.js} +539 -651
- package/chunks/{chunk-PXOJLJ5W.js → chunk-FMFBLTLY.js} +606 -223
- package/chunks/{chunk-ZLCT4C5A.js → chunk-FTF2YIZ5.js} +1 -1
- package/chunks/{chunk-IOSEW6KP.js → chunk-G6FECKTJ.js} +9 -6
- package/chunks/{chunk-RDG44S5I.js → chunk-GGNE3JAW.js} +2 -2
- package/chunks/chunk-GYTKQYDB.js +23 -0
- package/chunks/{chunk-B6UBOIFE.js → chunk-H33EQVMG.js} +14 -11
- package/chunks/chunk-H72BQNM3.js +645 -0
- package/chunks/{chunk-YZBDKFRQ.js → chunk-HGIMWQVT.js} +995 -892
- package/chunks/chunk-HOCJDUFY.js +20 -0
- package/chunks/{chunk-6UQSU7CQ.js → chunk-HPXV655A.js} +60 -107
- package/chunks/{chunk-45NQKMYB.js → chunk-HVC3PNVC.js} +1 -1
- package/chunks/{chunk-QJHPWLZC.js → chunk-HYDJDQGJ.js} +1 -1
- package/chunks/{chunk-7DMTAQJ6.js → chunk-IB7FQJRY.js} +163 -57
- package/chunks/{chunk-AW27A43Y.js → chunk-ICURCKIU.js} +1428 -120
- package/chunks/{chunk-4F5WV4RF.js → chunk-ISKH4QX3.js} +288 -15
- package/chunks/{chunk-SE55HQGF.js → chunk-J6S24ZJE.js} +92 -70
- package/chunks/{chunk-7DYNJFES.js → chunk-JB4JIVTJ.js} +6 -1
- package/chunks/{chunk-OARZJFZX.js → chunk-JN4IWWMN.js} +4 -4
- package/chunks/{chunk-6PCOVQO2.js → chunk-JUUBLSZU.js} +8 -8
- package/chunks/{chunk-FEMQ6Y7W.js → chunk-JWALNCLT.js} +47 -126
- package/chunks/{chunk-TBVSALA3.js → chunk-K5KXUXWC.js} +3 -3
- package/chunks/{chunk-XYQHT3AW.js → chunk-KTJFDCX4.js} +2 -2
- package/chunks/{chunk-6FRJEE2S.js → chunk-LEFCFTEX.js} +6 -6
- package/chunks/{chunk-BUGYW6FB.js → chunk-LEGTMYAE.js} +1 -1
- package/chunks/{chunk-MPHLIJYL.js → chunk-LLZA2IK3.js} +20 -8
- package/chunks/{chunk-BEGIBJAZ.js → chunk-LNETQKBE.js} +4 -4
- package/chunks/{chunk-KVGR4MCF.js → chunk-LUEHOUHM.js} +3 -3
- package/chunks/{chunk-2A4C2MEG.js → chunk-LVPZO674.js} +35 -12
- package/chunks/{chunk-25NESM4G.js → chunk-M4ORUPYI.js} +29 -5
- package/chunks/{chunk-VFACN2CE.js → chunk-M6FOJXW3.js} +1 -1
- package/chunks/{chunk-FYZMB6DB.js → chunk-MAYHGRP4.js} +12 -12
- package/chunks/{chunk-K3LPAED5.js → chunk-MQM5PJML.js} +24 -4
- package/chunks/{chunk-ZRFUT5VV.js → chunk-MTJN7FOT.js} +7 -7
- package/chunks/{chunk-BGXZBI5B.js → chunk-N4X7G4J2.js} +2 -1
- package/chunks/{chunk-2TRNCJK4.js → chunk-NIFYWDYN.js} +1 -1
- package/chunks/{chunk-SQS55KR4.js → chunk-NU7RKEZR.js} +2 -2
- package/chunks/{chunk-U2UYQMM6.js → chunk-NXMBRVMQ.js} +3 -3
- package/chunks/chunk-OI4NY7RA.js +346 -0
- package/chunks/{chunk-LURJYO2T.js → chunk-OZ6KS6KW.js} +4 -0
- package/chunks/{chunk-K52PZNU4.js → chunk-PDQGMSZK.js} +2 -2
- package/chunks/{chunk-PZRUV52H.js → chunk-PPKZ7JOE.js} +20 -2
- package/chunks/{chunk-SAH4BD2J.js → chunk-PQEISIKS.js} +67 -0
- package/chunks/{chunk-AO4M6NMD.js → chunk-PWIGAMA4.js} +146 -27
- package/chunks/{chunk-S3G6YFQC.js → chunk-QFCDF5PL.js} +1 -1
- package/chunks/chunk-QHMLYMMS.js +32 -0
- package/chunks/{chunk-5XUTPXQU.js → chunk-QPTRRPZU.js} +47 -13
- package/chunks/{chunk-UUQFJILB.js → chunk-RFI4YGMR.js} +34 -267
- package/chunks/{chunk-A6NRNRKE.js → chunk-RFIDDFAL.js} +1 -1
- package/chunks/chunk-RKFGE7JH.js +93 -0
- package/chunks/chunk-RNVFRIOO.js +275 -0
- package/chunks/{chunk-WU5E4HMO.js → chunk-RU7BK6B3.js} +1 -1
- package/chunks/{chunk-J5ZDDUKM.js → chunk-RVXDXY6I.js} +4 -4
- package/chunks/{chunk-OE52YHCZ.js → chunk-RWZB422L.js} +11 -11
- package/chunks/chunk-RXFQM6FQ.js +42 -0
- package/chunks/{chunk-MHG6NDS6.js → chunk-RYNZQGXN.js} +19 -2
- package/chunks/{chunk-4CWDWDL6.js → chunk-SJ5ERAW3.js} +1 -1
- package/chunks/{chunk-Q54XG7IX.js → chunk-SMPR7SPO.js} +1 -1
- package/chunks/{chunk-UIRLQ3N7.js → chunk-SRZZY4IY.js} +3 -3
- package/chunks/{chunk-ND7NOI4P.js → chunk-STUJ7IMZ.js} +0 -92
- package/chunks/{chunk-VYC7XFYV.js → chunk-SUX7HDNA.js} +5 -5
- package/chunks/{chunk-ZZUVC6RI.js → chunk-SVNO44PF.js} +3 -3
- package/chunks/{chunk-FDD2IUEL.js → chunk-SZLBBZH4.js} +370 -35
- package/chunks/{chunk-GHY5OIYP.js → chunk-T2NKRHZZ.js} +13 -13
- package/chunks/chunk-T4EFG2P5.js +113 -0
- package/chunks/{chunk-BMCSKS37.js → chunk-TLHUNMO7.js} +6 -6
- package/chunks/{chunk-JOLJTKIG.js → chunk-TPI7O7HR.js} +1 -1
- package/chunks/{chunk-6QSA4JHL.js → chunk-TQHGJYR3.js} +4492 -1121
- package/chunks/{chunk-ISJMN3ML.js → chunk-TTX2JUE6.js} +1 -1
- package/chunks/{chunk-EFB657PR.js → chunk-TW3E6YNO.js} +3 -3
- package/chunks/{chunk-LD5VIJ7S.js → chunk-TWSKM647.js} +1 -1
- package/chunks/chunk-U54AYGEC.js +337 -0
- package/chunks/{chunk-A5F2YNO6.js → chunk-UHQFIS7N.js} +260 -10
- package/chunks/{chunk-6NFAEG54.js → chunk-UTLCH2FK.js} +24 -13
- package/chunks/{chunk-7JBHIQS2.js → chunk-UY3PBNY3.js} +19 -37
- package/chunks/{chunk-DWCKACFL.js → chunk-V2NDP3I4.js} +2 -2
- package/chunks/{chunk-2GXYDNXP.js → chunk-V2QDDC5J.js} +19 -9
- package/chunks/{chunk-VLRBJ24J.js → chunk-V5J4J5TP.js} +2 -2
- package/chunks/{chunk-X2UOOG5V.js → chunk-VQUGEVGR.js} +1 -1
- package/chunks/{chunk-RDQ7QB4Y.js → chunk-VTHREBQM.js} +2 -2
- package/chunks/{chunk-YLFLHKDL.js → chunk-W3N5XAZ6.js} +1 -1
- package/chunks/{chunk-62JOGZL5.js → chunk-W6DUQ5GA.js} +11497 -10502
- package/chunks/{chunk-P47E4SJC.js → chunk-WALC5VJH.js} +4 -4
- package/chunks/{chunk-3ZFJUBTP.js → chunk-WAOIHTJS.js} +1 -1
- package/chunks/{chunk-KIVGVFMM.js → chunk-WBHKK3CU.js} +16 -4
- package/chunks/{chunk-XZJKSETB.js → chunk-WXEA74YB.js} +3 -3
- package/chunks/{chunk-VEND4KA4.js → chunk-X3ZRTCJD.js} +1 -1
- package/chunks/{chunk-YRLW2MSX.js → chunk-XBVNNDPK.js} +11 -4
- package/chunks/{chunk-XL5K4SVK.js → chunk-XF63PKEN.js} +1 -1
- package/chunks/{chunk-LDGWX737.js → chunk-XLLQJRAH.js} +323 -510
- package/chunks/{chunk-2Z6LSQMF.js → chunk-XQFT3QUF.js} +1 -1
- package/chunks/{chunk-P3QQPMQA.js → chunk-XZA32HII.js} +4 -4
- package/chunks/{chunk-C72BXMJ5.js → chunk-Y3QL45LS.js} +1 -1
- package/chunks/{chunk-QS4ENGVF.js → chunk-Y4TPOUEV.js} +17 -8
- package/chunks/{chunk-AVCCKIZ6.js → chunk-YRZX2PHA.js} +1 -1
- package/chunks/{chunk-Z3JMO2CH.js → chunk-YTDVNSUQ.js} +1 -1
- package/chunks/{chunk-WS7PAXXR.js → chunk-YWQ237GX.js} +15 -199
- package/chunks/chunk-ZELCTN6Y.js +29 -0
- package/chunks/{chunk-TQOF5KBL.js → chunk-ZEZKIS2K.js} +0 -31
- package/chunks/{chunk-IIWGSX4L.js → chunk-ZTP35P4B.js} +1 -1
- package/chunks/{chunk-K623ENWT.js → chunk-ZU4UDIWX.js} +23 -1
- package/chunks/chunk-ZYNTSXWK.js +32 -0
- package/chunks/config-utils-JVGAP34H.js +113 -0
- package/chunks/contextCommand-XDB7OSO7.js +106 -0
- package/chunks/{core-runtime-CES6JSVV.js → core-runtime-XHYA2RH7.js} +66 -63
- package/chunks/create-sub-session-23ITIELI.js +17 -0
- package/chunks/{create-sub-session-UJTPMVOG.js → create-sub-session-MHYCFNCM.js} +168 -87
- package/chunks/{cron-create-IKA56DAF.js → cron-create-KJ4IY6PP.js} +57 -10
- package/chunks/{cron-delete-K5Q62EGH.js → cron-delete-MBLQCAYY.js} +4 -4
- package/chunks/{cron-list-QBFGAMP7.js → cron-list-DWH2PQ47.js} +4 -4
- package/chunks/{daemon-RZZUPGOJ.js → daemon-K5XS42ID.js} +567 -27
- package/chunks/{daemon-git-worktree-guard-3QY2BQYB.js → daemon-git-worktree-guard-V3P5XLHB.js} +339 -95
- package/chunks/daemon-status-provider-KKU7ZTLM.js +117 -0
- package/chunks/daemon-trust-policy-TZGK34DW.js +112 -0
- package/chunks/{daemon-trust-policy-monitor-TK4K7M63.js → daemon-trust-policy-monitor-F23DD2M4.js} +69 -69
- package/chunks/{de-RYUHH2C6.js → de-X6HLSIFE.js} +1 -0
- package/chunks/deferred-core-runtime-LKLGBCGZ.js +114 -0
- package/chunks/{display-image-OEJMJV3S.js → display-image-BE7I6ZB6.js} +5 -5
- package/chunks/{dist-5EV2G6MC.js → dist-4WXLCBDR.js} +1 -1
- package/chunks/{dist-ES6HNUW2.js → dist-5VXFRTWU.js} +525 -64
- package/chunks/{dist-ESS34DHC.js → dist-6BPYWHVD.js} +89 -65
- package/chunks/{dist-2OG3PGKO.js → dist-GFN5DCBX.js} +76 -67
- package/chunks/{dist-K7IQB53U.js → dist-HZNT6GQS.js} +1 -1
- package/chunks/{dist-J6P3C52Z.js → dist-LVZCXVPF.js} +99 -26
- package/chunks/{dist-LZO24N3E.js → dist-N6W6E753.js} +71 -64
- package/chunks/dist-QDLFKWOL.js +2512 -0
- package/chunks/{dist-VVQBOKDH.js → dist-SWQMYP2Q.js} +18 -16
- package/chunks/earlyInputCapture-NERYFYTR.js +107 -0
- package/chunks/{edit-A2633SLR.js → edit-ACCATIXB.js} +49 -51
- package/chunks/{en-3RHLPITS.js → en-YLXBXM4Z.js} +5 -1
- package/chunks/{enter-worktree-OIAHE2TB.js → enter-worktree-35QCAAFP.js} +7 -8
- package/chunks/{enterPlanMode-SUGIKLR7.js → enterPlanMode-NEN6EPVM.js} +48 -50
- package/chunks/environment-CKWHBC5T.js +129 -0
- package/chunks/errors-XTZPNQ77.js +113 -0
- package/chunks/{exit-worktree-3UT3SSWT.js → exit-worktree-XQD6D543.js} +7 -8
- package/chunks/exitPlanMode-CY344X5J.js +83 -0
- package/chunks/{fast-path-3AVP3G35.js → fast-path-YSOX4PAM.js} +31 -10
- package/chunks/{fast-path-settings-WHX3J3ZI.js → fast-path-settings-XMFBYFUH.js} +2 -2
- package/chunks/{fr-4PL5GHG4.js → fr-FTZWF462.js} +1 -0
- package/chunks/{gemini-7PVQWHTH.js → gemini-VQY2YCPH.js} +137 -129
- package/chunks/{geminiContentGenerator-B2FOJJDJ.js → geminiContentGenerator-PAPXNIGU.js} +16 -13
- package/chunks/{glob-7YGXE6OV.js → glob-GVCUSBBF.js} +48 -50
- package/chunks/{goal-tools-TLJCE7YZ.js → goal-tools-5STK6OXW.js} +77 -31
- package/chunks/{grep-6DV6LTON.js → grep-5GPICQBU.js} +6 -6
- package/chunks/handleAutoUpdate-ZJPJN42W.js +109 -0
- package/chunks/i18n-BZYKOST7.js +124 -0
- package/chunks/{image-gen-7CSCJ73T.js → image-gen-J6FDGUZP.js} +8 -12
- package/chunks/initializer-GO2C5HE3.js +113 -0
- package/chunks/installationInfo-WM2GXQZ6.js +107 -0
- package/chunks/{ja-HZ7X7PQO.js → ja-2GL5FKYJ.js} +1 -0
- package/chunks/{keychain-token-storage-MTFTAESK.js → keychain-token-storage-37XPR34V.js} +2 -2
- package/chunks/list-ERDJB7PQ.js +116 -0
- package/chunks/{list-agents-43XUEXJV.js → list-agents-DI3YFTDT.js} +2 -2
- package/chunks/loadedSettingsAdapter-7JOCVOKV.js +110 -0
- package/chunks/{loggingContentGenerator-RNE66CKK.js → loggingContentGenerator-3ONLU3BS.js} +327 -39
- package/chunks/{loop-wakeup-E54KDUXC.js → loop-wakeup-XJFONSQ7.js} +5 -5
- package/chunks/{ls-CGL2UC3H.js → ls-3VAT2J7A.js} +4 -4
- package/chunks/{lsp-5IKUO5DX.js → lsp-5W7IRUBH.js} +2 -2
- package/chunks/{managed-npm-update-Y3SC3GLJ.js → managed-npm-update-TLRCC2GE.js} +62 -62
- package/chunks/mcp-2LH3QXR2.js +110 -0
- package/chunks/{monitor-PXYSGSUN.js → monitor-P7LDAL4W.js} +48 -50
- package/chunks/nonInteractiveCli-E5T7PZ27.js +184 -0
- package/chunks/{notebook-edit-ISIBJVBR.js → notebook-edit-F7KSG4WQ.js} +49 -51
- package/chunks/open-with-auth-4UI3KHUR.js +55 -0
- package/chunks/{openaiContentGenerator-6TBOPEGT.js → openaiContentGenerator-2EXCZUGN.js} +29 -32
- package/chunks/pidfile-P25DWA5Q.js +111 -0
- package/chunks/process-registry-OAEG6WGC.js +662 -0
- package/chunks/{processUtils-YK2TDTTU.js → processUtils-PVDKBL35.js} +2 -2
- package/chunks/prompt-terminal-ledger-AJ7T7OIV.js +105 -0
- package/chunks/{pt-QT5N2Q6Q.js → pt-XN2YWJVM.js} +1 -0
- package/chunks/{qwenContentGenerator-CLDMA2Y4.js → qwenContentGenerator-TBBRLWIT.js} +54 -62
- package/chunks/{qwenOAuth2-DLDR6UC5.js → qwenOAuth2-OF5WRBQT.js} +7 -11
- package/chunks/read-file-6IIY4RLJ.js +32 -0
- package/chunks/{read-mcp-resource-XYES2B42.js → read-mcp-resource-XD257PGJ.js} +2 -2
- package/chunks/read-package-up-6T6ICKR7.js +13 -0
- package/chunks/{record-artifact-W3IBTGL7.js → record-artifact-VW23GS4F.js} +4 -5
- package/chunks/report-findings-XA3FJG3N.js +33 -0
- package/chunks/request-shutdown-BCLA3JV2.js +133 -0
- package/chunks/resumeHistoryUtils-44IETXDY.js +118 -0
- package/chunks/ripGrep-E7ESZ7SS.js +39 -0
- package/chunks/{ru-STMG5BPD.js → ru-OLTMFJEW.js} +1 -0
- package/chunks/{run-qwen-serve-XJHOW2NY.js → run-qwen-serve-DXBCYW7V.js} +924 -356
- package/chunks/runtime-RUSPD35D.js +148 -0
- package/chunks/scheduled-tasks-DVRJZO6I.js +127 -0
- package/chunks/scheduler-TDRB2NSY.js +122 -0
- package/chunks/{sdk-exporters-http-RSIOP3G2.js → sdk-exporters-http-TTU2CHBU.js} +5 -5
- package/chunks/{sdk-impl-CB3KARSK.js → sdk-impl-UUMVYMAL.js} +12 -6
- package/chunks/{send-message-J4VT46OI.js → send-message-AJ4OCUBV.js} +24 -29
- package/chunks/serve-KITOM7OR.js +118 -0
- package/chunks/{server-74ONDK62.js → server-THCOMUC2.js} +5814 -4549
- package/chunks/{session-BO6VBWJP.js → session-XKR5MPXE.js} +152 -142
- package/chunks/session-pr-refresh-KRBH7KDA.js +278 -0
- package/chunks/{settings-35QZNFDG.js → settings-YXZ4XBKK.js} +72 -72
- package/chunks/shell-5FJ2DZ3W.js +93 -0
- package/chunks/{skill-DKEMQSNJ.js → skill-VMMJZ6CJ.js} +161 -33
- package/chunks/skill-settings-7SG4YA2W.js +118 -0
- package/chunks/spawnChannel-BPMIXRBI.js +112 -0
- package/chunks/standalone-update-QN5HFRIC.js +118 -0
- package/chunks/{startInteractiveUI-J2QSGWPU.js → startInteractiveUI-5A7RQFRP.js} +3139 -2438
- package/chunks/{syntheticOutput-JAXMIMZP.js → syntheticOutput-ML43GEFN.js} +3 -3
- package/chunks/{task-create-I2H322E4.js → task-create-QN4LYRSE.js} +11 -11
- package/chunks/{task-list-3OLIWFTQ.js → task-list-JPLGK45U.js} +5 -5
- package/chunks/{task-stop-JAUY6MSY.js → task-stop-CXEH5L2D.js} +2 -2
- package/chunks/{task-update-B3XO4CPI.js → task-update-IWEOJFV2.js} +11 -11
- package/chunks/{team-create-W534PMGX.js → team-create-HVGVUL2L.js} +49 -51
- package/chunks/{team-delete-Q7GE7RRI.js → team-delete-RZVVSGCY.js} +5 -5
- package/chunks/{team-plan-approval-WNV6P6NG.js → team-plan-approval-S5A5FQWU.js} +48 -50
- package/chunks/terminal-image-renderer-SIVPPXDI.js +114 -0
- package/chunks/theme-manager-TA33UZZX.js +102 -0
- package/chunks/{todoWrite-FJJTY2TI.js → todoWrite-WDJNQEMW.js} +43 -25
- package/chunks/{tool-search-Y4KL3LRE.js → tool-search-NX7IPDKP.js} +19 -20
- package/chunks/total-session-admission-PWXZBOVX.js +114 -0
- package/chunks/trustedFolders-V6Y4CU3F.js +122 -0
- package/chunks/{update-relaunch-OHVFN6KF.js → update-relaunch-CGSX3R37.js} +6 -6
- package/chunks/updateCheck-T5O2WGIB.js +118 -0
- package/chunks/useAutoAcceptIndicator-ULBJJWPY.js +120 -0
- package/chunks/{validateNonInterActiveAuth-WJXH426F.js → validateNonInterActiveAuth-E5S2JSRC.js} +114 -108
- package/chunks/{version-QMDRADXM.js → version-LS5JPU36.js} +2 -2
- package/chunks/{web-fetch-ROS6P4LP.js → web-fetch-RLMFZTS3.js} +25 -244
- package/chunks/{web-search-JS3E76O6.js → web-search-LMCIC4N5.js} +11 -13
- package/chunks/{web-shell-static-3NUTRHAH.js → web-shell-static-A6QMUNNV.js} +11 -4
- package/chunks/webapi-Z5OM224P.js +4118 -0
- package/chunks/{workflow-2FCMBTBZ.js → workflow-JBXU3IGA.js} +713 -138
- package/chunks/workspace-providers-status-525ORQBH.js +114 -0
- package/chunks/{workspace-registration-store-SU4EJKSD.js → workspace-registration-store-7Y44R4LV.js} +1 -1
- package/chunks/workspace-registry-HS4RWUSQ.js +123 -0
- package/chunks/workspace-service-7PXDM6EB.js +129 -0
- package/chunks/workspace-skills-status-FMJGC2XI.js +113 -0
- package/chunks/{workspace-trust-reconciler-4Y4F7XIX.js → workspace-trust-reconciler-3YTWSQBY.js} +78 -77
- package/chunks/write-file-BVQRYQQO.js +88 -0
- package/chunks/{zh-TW-NX43Z2S2.js → zh-TW-RPTMRTHG.js} +5 -1
- package/chunks/{zh-3JQ75KFU.js → zh-UNY63FR3.js} +5 -1
- package/chunks/{zoom-image-DNBKCGGF.js → zoom-image-FGCELNS4.js} +14 -15
- package/cli.js +13 -13
- package/locales/ca.js +3 -0
- package/locales/de.js +1 -0
- package/locales/en.js +5 -0
- package/locales/fr.js +1 -0
- package/locales/ja.js +1 -0
- package/locales/pt.js +1 -0
- package/locales/ru.js +1 -0
- package/locales/zh-TW.js +5 -0
- package/locales/zh.js +5 -0
- package/package.json +3 -3
- package/web-shell/assets/{abnfDiagram-VCTEODGH-DWHXEVlf.js → abnfDiagram-VCTEODGH-2XZDeWYO.js} +1 -1
- package/web-shell/assets/{arc-CXKjm86V.js → arc-B6UgMh90.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-B_ynI0cX.js → architectureDiagram-5GKGNRK7-DZgNFeN1.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-DMebd9X0.js → blockDiagram-NRAW4CY4-DQ2wvBFN.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-BZ5BlxS-.js → c4Diagram-UCG6FXSJ-DMmQMrc4.js} +1 -1
- package/web-shell/assets/channel-D_TyfiTx.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-CluJKopE.js → chunk-2Q5K7J3B-C8Zh2e9y.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-hzDAPFOo.js → chunk-5VM5RSS4-C3LTenP8.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-6vHioKJe.js → chunk-F27PBJKO-CxABOc8n.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-B_5hKTGo.js → chunk-G27WJ6UU-CD_JxHDC.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-CO9VoFCH.js → chunk-JWPE2WC7-BdmZPmce.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-7L5JpxYu.js → chunk-LCL6LL3I-80bcHmfK.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-DHLJMAqj.js → chunk-POPQ4Y6H-CNpLZyQF.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-Dt-4Cqdl.js → chunk-SVP7TREG-CXlKgMv3.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-QlSQ3ssG.js → chunk-XXDRQBXY-CivyYyvL.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-Bw_H3xMd.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-Bw_H3xMd.js +1 -0
- package/web-shell/assets/{cose-bilkent-JH36ORCC-DMw3EOxl.js → cose-bilkent-JH36ORCC-COAjRH3w.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-s6vEA7RQ.js → cynefin-OW5HDTMX-DqU1JHO6.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-AOKsvYLt.js → cynefinDiagram-5FMLGOSQ-BCLI1Bvj.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-9QAZn3m7.js → dagre-3AP2YEHR-DmAz8nqF.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-CWpnu4FN.js → diagram-S7CK7UJ4-Ck-5QLT5.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-9l0jXD8q.js → diagram-UQ7AKVKN-C0ljX0mW.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-BMUHroj4.js → diagram-VSXAHHWV-DPgvT24v.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-Co9x27vm.js → diagram-VX7I27RA-D7hWr1LR.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-BKnTeOER.js → diagram-Z3DM3KII-D59tlOta.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-QBZD9CKG.js → ebnfDiagram-PWID7BFC-CY2DDx00.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-dKWAEGun.js → erDiagram-SSCWMZ5O-AR4h8Q8k.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-CR_UgVqj.js → flowDiagram-A5DVABFB-DbF0HqBz.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-DQUnjWO6.js → ganttDiagram-EL5Y4UJY-J52mrIhc.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-C4j59wPL.js → gitGraphDiagram-WWUBYQGX-CcgMY5EV.js} +1 -1
- package/web-shell/assets/index-BjUg3vPr.css +5 -0
- package/web-shell/assets/index-CFwYYVFU.js +1873 -0
- package/web-shell/assets/{index-tYXRIPz4.js → index-MQs7l15A.js} +1 -1
- package/web-shell/assets/{infoDiagram-RXCK75RN-mzqbt50w.js → infoDiagram-RXCK75RN-Buu3ibp2.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-ChLOqhGl.js → ishikawaDiagram-5VMMS53U-CoKQxnF3.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-SifZE-R8.js → journeyDiagram-EYS64GPL-CxK35mTC.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-Sft2qlbc.js → kanban-definition-3QL26DDD-tk2CHTQ1.js} +1 -1
- package/web-shell/assets/{layout-O2uHVkPd.js → layout-DEpMwb4u.js} +1 -1
- package/web-shell/assets/{linear-BVqYgjSc.js → linear-DSQsLh53.js} +1 -1
- package/web-shell/assets/{mermaid.core-CZ9MQaJ6.js → mermaid.core-DIZuPBQT.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-BNQYjBqM.js → mindmap-definition-FBJOCRG2-CCAvk8r_.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-rh1J8uv6.js → pegDiagram-XKGWAZYB-CpJ28jxz.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-BQHR5mn9.js → pieDiagram-E7YTZNPT-ziJR2R32.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-CLCbP7mK.js → quadrantDiagram-AXDQQJYC-B60zE3Mh.js} +1 -1
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-CDQhrkbm.js → railroadDiagram-O6MQD6OU-M3GqQ_g1.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-BdP9uswg.js → requirementDiagram-EFPCY7ZU-ntCtYqTk.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-CFZDFBXF.js → sankeyDiagram-P5KCCOFB-AYLoItcZ.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-BW9WOJXI.js → sequenceDiagram-WJ2MYXX4-DEWk4Mlj.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-CPMia32z.js → sizeCapture-X5ZJPWSS-OOWvzPay.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-BANp9p7F.js → stateDiagram-HBIQ2CUA-BcMmvxem.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DRLLqPWO.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-JroXksK-.js → swimlanes-XN3QIQJK-DuZTWWvh.js} +1 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-DOfLQQYt.js +8 -0
- package/web-shell/assets/{timeline-definition-24CTP7MA-DfuVIfYY.js → timeline-definition-24CTP7MA-CjqtZXEd.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-BZXoSjRB.js → vennDiagram-4TSXK5OY-knVCVkQ4.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-BdiY8avC.js → wardleyDiagram-VM6X3IG4-yoWhw0a2.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-DcXh_U4H.js → xychartDiagram-S5SC5T6Z-ue14E_gL.js} +1 -1
- package/web-shell/index.html +20 -5
- package/chunks/MaxSizedBox-3OZJCC3J.js +0 -110
- package/chunks/agent-BFE3DQM3.js +0 -93
- package/chunks/agent-headless-LLVKZZ4P.js +0 -87
- package/chunks/bridge-EBYO4SYM.js +0 -118
- package/chunks/channel-settings-store-5VP2Y2YM.js +0 -115
- package/chunks/chunk-2J3OJGTL.js +0 -98
- package/chunks/chunk-7IV52LTO.js +0 -202
- package/chunks/chunk-AXMWHKXA.js +0 -42
- package/chunks/chunk-F6WFNA7U.js +0 -22
- package/chunks/chunk-IO257NUD.js +0 -623
- package/chunks/chunk-JS73NNWF.js +0 -30
- package/chunks/chunk-SJ4HB27T.js +0 -945
- package/chunks/chunk-VGHZT6JR.js +0 -51
- package/chunks/chunk-YHC2EYYG.js +0 -125
- package/chunks/computer-use-EGPWFEX6.js +0 -2142
- package/chunks/config-utils-WZ43VOBS.js +0 -25
- package/chunks/contextCommand-5DSEQI6S.js +0 -106
- package/chunks/daemon-status-provider-EYMLPYJU.js +0 -116
- package/chunks/daemon-trust-policy-CQYKZ7VO.js +0 -112
- package/chunks/deferred-core-runtime-WFEPUXZR.js +0 -114
- package/chunks/earlyInputCapture-PN4PP7V5.js +0 -107
- package/chunks/environment-WUPHLPKZ.js +0 -127
- package/chunks/errors-WPMPVIAT.js +0 -113
- package/chunks/exitPlanMode-MLFHYZNB.js +0 -85
- package/chunks/handleAutoUpdate-F5OTWUT5.js +0 -109
- package/chunks/i18n-C562S6KN.js +0 -124
- package/chunks/initializer-7YPGOFP4.js +0 -113
- package/chunks/installationInfo-ARU5Q2H7.js +0 -107
- package/chunks/list-KTSK275C.js +0 -116
- package/chunks/loadedSettingsAdapter-F3T2EQ5J.js +0 -110
- package/chunks/mcp-6ONTVPAY.js +0 -110
- package/chunks/nonInteractiveCli-KZDWFAN6.js +0 -178
- package/chunks/pidfile-IO7ALSZF.js +0 -111
- package/chunks/process-registry-PMJOA5CO.js +0 -172
- package/chunks/prompt-terminal-ledger-TCE7PMCE.js +0 -105
- package/chunks/read-file-2HOD2ATO.js +0 -33
- package/chunks/resumeHistoryUtils-DDSBAQJS.js +0 -118
- package/chunks/ripGrep-E7P6K4QR.js +0 -40
- package/chunks/runtime-J4SPTJRQ.js +0 -148
- package/chunks/scheduler-VRAEZZ4E.js +0 -122
- package/chunks/serve-KEAWV4TI.js +0 -118
- package/chunks/shell-H6K63WG3.js +0 -95
- package/chunks/skill-settings-TCKLXIXM.js +0 -118
- package/chunks/spawnChannel-2K6NKWM5.js +0 -111
- package/chunks/standalone-update-LSCGOEFP.js +0 -118
- package/chunks/terminal-image-renderer-UHX3UD66.js +0 -114
- package/chunks/theme-manager-6B47ZPIF.js +0 -102
- package/chunks/total-session-admission-NSCFWGJH.js +0 -113
- package/chunks/trustedFolders-7XMJWGQ3.js +0 -122
- package/chunks/updateCheck-EOVLHD4T.js +0 -118
- package/chunks/useAutoAcceptIndicator-ZNMIGBTN.js +0 -120
- package/chunks/workspace-providers-status-GPGU5YMT.js +0 -113
- package/chunks/workspace-registry-BQISXT6Y.js +0 -122
- package/chunks/workspace-service-LLY6HCUC.js +0 -129
- package/chunks/workspace-skills-status-L5N2Y3ZP.js +0 -113
- package/chunks/write-file-EJHU2Z3E.js +0 -90
- package/web-shell/assets/channel-Zg3WHgq_.js +0 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-C16l9jQz.js +0 -1
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-C16l9jQz.js +0 -1
- package/web-shell/assets/index-BN_m_uHJ.css +0 -5
- package/web-shell/assets/index-DrlJu79f.js +0 -1792
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-NZYAoQLU.js +0 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-3YdVX3vj.js +0 -8
|
@@ -12,37 +12,41 @@ import {
|
|
|
12
12
|
revokeChannelWorkerPromptAuthorization
|
|
13
13
|
} from "./chunk-Z7B6SRPM.js";
|
|
14
14
|
import {
|
|
15
|
-
CHANNEL_DAEMON_WORKER_SENTINEL,
|
|
16
|
-
CHANNEL_DELIVERY_IPC_TIMEOUT_MS,
|
|
17
15
|
CHANNEL_WEBHOOK_TASK_IPC_TIMEOUT_MS,
|
|
18
|
-
CHANNEL_WORKER_HEARTBEAT_INTERVAL_MS,
|
|
19
|
-
ChannelDeliveryError,
|
|
20
16
|
ChannelWebhookEnqueueError,
|
|
21
|
-
MAX_CHANNEL_DELIVERIES_IN_FLIGHT,
|
|
22
17
|
MAX_CHANNEL_STARTUP_FAILURES,
|
|
23
18
|
MAX_CHANNEL_STARTUP_FAILURE_CHANNEL_LENGTH,
|
|
24
19
|
MAX_CHANNEL_STARTUP_FAILURE_CODE_LENGTH,
|
|
25
20
|
MAX_CHANNEL_STARTUP_FAILURE_MESSAGE_LENGTH,
|
|
26
|
-
QWEN_DAEMON_TOKEN_ENV,
|
|
27
|
-
QWEN_DAEMON_URL_ENV,
|
|
28
|
-
QWEN_DAEMON_WORKSPACE_ENV,
|
|
29
|
-
QWEN_SERVER_TOKEN_ENV,
|
|
30
|
-
createChannelDeliveryMessage,
|
|
31
21
|
createChannelWebhookTaskMessage,
|
|
32
|
-
isChannelDeliveryResultMessage,
|
|
33
22
|
isChannelStartupReportMessage,
|
|
34
23
|
isChannelStartupReportType,
|
|
35
24
|
isChannelWebhookEnqueueErrorCode,
|
|
36
25
|
isChannelWebhookTaskResultMessage
|
|
37
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-STUJ7IMZ.js";
|
|
27
|
+
import {
|
|
28
|
+
CHANNEL_DAEMON_WORKER_SENTINEL,
|
|
29
|
+
CHANNEL_WORKER_HEARTBEAT_INTERVAL_MS,
|
|
30
|
+
QWEN_DAEMON_TOKEN_ENV,
|
|
31
|
+
QWEN_DAEMON_URL_ENV,
|
|
32
|
+
QWEN_DAEMON_WORKSPACE_ENV,
|
|
33
|
+
QWEN_SERVER_TOKEN_ENV
|
|
34
|
+
} from "./chunk-GYTKQYDB.js";
|
|
38
35
|
import {
|
|
39
36
|
createWorkerDiagnosticRedactor,
|
|
40
37
|
normalizeWorkerDiagnostic,
|
|
41
38
|
sanitizeWorkerDiagnostic
|
|
42
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-RFIDDFAL.js";
|
|
43
40
|
import {
|
|
44
41
|
channelSelectionNames
|
|
45
42
|
} from "./chunk-ALMR3E6Q.js";
|
|
43
|
+
import {
|
|
44
|
+
CHANNEL_DELIVERY_IPC_TIMEOUT_MS,
|
|
45
|
+
ChannelDeliveryError,
|
|
46
|
+
MAX_CHANNEL_DELIVERIES_IN_FLIGHT,
|
|
47
|
+
createChannelDeliveryMessage,
|
|
48
|
+
isChannelDeliveryResultMessage
|
|
49
|
+
} from "./chunk-RKFGE7JH.js";
|
|
46
50
|
import {
|
|
47
51
|
EXTERNAL_TOOL_GUARD_TOKEN_ENV
|
|
48
52
|
} from "./chunk-3VUENPWF.js";
|
|
@@ -53,7 +57,7 @@ import {
|
|
|
53
57
|
} from "./chunk-5HBA2Z7V.js";
|
|
54
58
|
import {
|
|
55
59
|
sanitizeLogText
|
|
56
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-ICURCKIU.js";
|
|
57
61
|
import {
|
|
58
62
|
init_esbuild_shims
|
|
59
63
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -65,6 +69,124 @@ import {
|
|
|
65
69
|
init_esbuild_shims();
|
|
66
70
|
import { fork } from "node:child_process";
|
|
67
71
|
import { randomUUID } from "node:crypto";
|
|
72
|
+
import * as fs from "node:fs";
|
|
73
|
+
import * as os from "node:os";
|
|
74
|
+
import * as path from "node:path";
|
|
75
|
+
|
|
76
|
+
// packages/cli/src/serve/pem-certificate-blocks.ts
|
|
77
|
+
init_esbuild_shims();
|
|
78
|
+
import { spawnSync } from "node:child_process";
|
|
79
|
+
import { X509Certificate } from "node:crypto";
|
|
80
|
+
import { mkdtempSync, rmSync, writeFileSync } from "node:fs";
|
|
81
|
+
import { tmpdir } from "node:os";
|
|
82
|
+
import { join } from "node:path";
|
|
83
|
+
var NODE_EXTRA_CA_CERTS_ENV = "NODE_EXTRA_CA_CERTS";
|
|
84
|
+
var ORACLE_TIMEOUT_MS = 1e4;
|
|
85
|
+
var ORACLE_MAX_BUFFER_BYTES = 16 * 1024 * 1024;
|
|
86
|
+
var ORACLE_SOURCE = `
|
|
87
|
+
const tls = require('node:tls');
|
|
88
|
+
if (typeof tls.getCACertificates === 'function') {
|
|
89
|
+
process.stdout.write(JSON.stringify({
|
|
90
|
+
certificates: tls.getCACertificates('extra'),
|
|
91
|
+
}));
|
|
92
|
+
} else {
|
|
93
|
+
tls.createSecureContext();
|
|
94
|
+
process.stdout.write(JSON.stringify({ legacy: true }));
|
|
95
|
+
}
|
|
96
|
+
`;
|
|
97
|
+
var ExtraCaInspectionError = class extends Error {
|
|
98
|
+
static {
|
|
99
|
+
__name(this, "ExtraCaInspectionError");
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
var LegacyExtraCaInspectionError = class extends ExtraCaInspectionError {
|
|
103
|
+
static {
|
|
104
|
+
__name(this, "LegacyExtraCaInspectionError");
|
|
105
|
+
}
|
|
106
|
+
constructor() {
|
|
107
|
+
super("Inspecting NODE_EXTRA_CA_CERTS requires Node.js 22.15.0 or newer.");
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
var FailedExtraCaInspectionError = class extends ExtraCaInspectionError {
|
|
111
|
+
static {
|
|
112
|
+
__name(this, "FailedExtraCaInspectionError");
|
|
113
|
+
}
|
|
114
|
+
constructor() {
|
|
115
|
+
super(
|
|
116
|
+
"Inspecting NODE_EXTRA_CA_CERTS failed before its contents could be judged."
|
|
117
|
+
);
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
function scanCertificateBlocks(contents, sourcePath) {
|
|
121
|
+
let dir;
|
|
122
|
+
try {
|
|
123
|
+
dir = sourcePath ? void 0 : mkdtempSync(join(tmpdir(), "qwen-ca-oracle-"));
|
|
124
|
+
const certPath = sourcePath ?? join(dir, "extra-ca.pem");
|
|
125
|
+
if (dir) writeFileSync(certPath, contents, { mode: 384 });
|
|
126
|
+
const oracleEnv = {
|
|
127
|
+
...process.env,
|
|
128
|
+
[NODE_EXTRA_CA_CERTS_ENV]: certPath
|
|
129
|
+
};
|
|
130
|
+
for (const key of Object.keys(oracleEnv)) {
|
|
131
|
+
if (key.toUpperCase() === "NODE_OPTIONS") delete oracleEnv[key];
|
|
132
|
+
}
|
|
133
|
+
const result = spawnSync(
|
|
134
|
+
process.execPath,
|
|
135
|
+
["--no-deprecation", "--input-type=commonjs", "-e", ORACLE_SOURCE],
|
|
136
|
+
{
|
|
137
|
+
encoding: "utf8",
|
|
138
|
+
env: oracleEnv,
|
|
139
|
+
maxBuffer: ORACLE_MAX_BUFFER_BYTES,
|
|
140
|
+
timeout: ORACLE_TIMEOUT_MS,
|
|
141
|
+
windowsHide: true
|
|
142
|
+
}
|
|
143
|
+
);
|
|
144
|
+
if (result.error || result.status !== 0) {
|
|
145
|
+
throw new FailedExtraCaInspectionError();
|
|
146
|
+
}
|
|
147
|
+
const parsed = JSON.parse(result.stdout);
|
|
148
|
+
if (typeof parsed !== "object" || parsed === null) {
|
|
149
|
+
throw new FailedExtraCaInspectionError();
|
|
150
|
+
}
|
|
151
|
+
const certificates = Reflect.get(parsed, "certificates");
|
|
152
|
+
if (certificates !== void 0) {
|
|
153
|
+
if (!Array.isArray(certificates) || !certificates.every((item) => typeof item === "string")) {
|
|
154
|
+
throw new FailedExtraCaInspectionError();
|
|
155
|
+
}
|
|
156
|
+
return certificates.map((block) => ({
|
|
157
|
+
block: block.trimEnd(),
|
|
158
|
+
certificate: new X509Certificate(block)
|
|
159
|
+
}));
|
|
160
|
+
}
|
|
161
|
+
if (Reflect.get(parsed, "legacy") !== true) {
|
|
162
|
+
throw new FailedExtraCaInspectionError();
|
|
163
|
+
}
|
|
164
|
+
throw new LegacyExtraCaInspectionError();
|
|
165
|
+
} catch (error) {
|
|
166
|
+
if (error instanceof ExtraCaInspectionError) throw error;
|
|
167
|
+
throw new FailedExtraCaInspectionError();
|
|
168
|
+
} finally {
|
|
169
|
+
if (dir) {
|
|
170
|
+
try {
|
|
171
|
+
rmSync(dir, { recursive: true, force: true });
|
|
172
|
+
} catch {
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
__name(scanCertificateBlocks, "scanCertificateBlocks");
|
|
178
|
+
function extractCertificateBlocks(contents, sourcePath) {
|
|
179
|
+
const scanned = scanCertificateBlocks(contents, sourcePath);
|
|
180
|
+
return scanned.length > 0 ? scanned.map((entry) => entry.block) : void 0;
|
|
181
|
+
}
|
|
182
|
+
__name(extractCertificateBlocks, "extractCertificateBlocks");
|
|
183
|
+
function loadableCertificates(contents, sourcePath) {
|
|
184
|
+
const scanned = scanCertificateBlocks(contents, sourcePath);
|
|
185
|
+
return scanned.length > 0 ? scanned.map((entry) => entry.certificate) : void 0;
|
|
186
|
+
}
|
|
187
|
+
__name(loadableCertificates, "loadableCertificates");
|
|
188
|
+
|
|
189
|
+
// packages/cli/src/serve/channel-worker-supervisor.ts
|
|
68
190
|
var DEFAULT_CHANNEL_WORKER_HEARTBEAT_TIMEOUT_MS = 45e3;
|
|
69
191
|
var MAX_WORKER_LOG_LINE_LENGTH = 4096;
|
|
70
192
|
var MAX_WORKER_LOG_BUFFER_LENGTH = 64 * 1024;
|
|
@@ -181,10 +303,151 @@ function hasObservedExit(snapshot) {
|
|
|
181
303
|
return snapshot.exitCode !== void 0 || snapshot.signal !== void 0;
|
|
182
304
|
}
|
|
183
305
|
__name(hasObservedExit, "hasObservedExit");
|
|
306
|
+
var NODE_EXTRA_CA_CERTS_ENV2 = "NODE_EXTRA_CA_CERTS";
|
|
307
|
+
var mergedWorkerCaBundles = /* @__PURE__ */ new Map();
|
|
308
|
+
function sourceStamp(filePath) {
|
|
309
|
+
const stat = fs.statSync(filePath);
|
|
310
|
+
return `${stat.mtimeMs}:${stat.size}`;
|
|
311
|
+
}
|
|
312
|
+
__name(sourceStamp, "sourceStamp");
|
|
313
|
+
var warnedWorkerCaMergeFallbacks = /* @__PURE__ */ new Set();
|
|
314
|
+
var WORKER_CA_MERGE_FALLBACK_FAMILIES = [
|
|
315
|
+
"read-error",
|
|
316
|
+
"inspection-failed",
|
|
317
|
+
"no-operator-blocks",
|
|
318
|
+
"no-daemon-blocks"
|
|
319
|
+
];
|
|
320
|
+
function workerCaMergeFallbackKey(operatorCaPath, daemonCertPath, family) {
|
|
321
|
+
return `${operatorCaPath}\0${daemonCertPath}\0${family}`;
|
|
322
|
+
}
|
|
323
|
+
__name(workerCaMergeFallbackKey, "workerCaMergeFallbackKey");
|
|
324
|
+
function warnWorkerCaMergeFallback(operatorCaPath, daemonCertPath, family, reason) {
|
|
325
|
+
const key = workerCaMergeFallbackKey(operatorCaPath, daemonCertPath, family);
|
|
326
|
+
if (warnedWorkerCaMergeFallbacks.has(key)) return;
|
|
327
|
+
warnedWorkerCaMergeFallbacks.add(key);
|
|
328
|
+
process.emitWarning(
|
|
329
|
+
`qwen: failed to merge ${NODE_EXTRA_CA_CERTS_ENV2} "${operatorCaPath}" with the daemon cert "${daemonCertPath}": ${reason}; channel workers will trust only the daemon cert`
|
|
330
|
+
);
|
|
331
|
+
}
|
|
332
|
+
__name(warnWorkerCaMergeFallback, "warnWorkerCaMergeFallback");
|
|
333
|
+
var mintedWorkerCaBundleDirs = /* @__PURE__ */ new Set();
|
|
334
|
+
var workerCaBundleExitHookRegistered = false;
|
|
335
|
+
function cleanupWorkerCaBundleDir(dir) {
|
|
336
|
+
try {
|
|
337
|
+
fs.rmSync(dir, { recursive: true, force: true });
|
|
338
|
+
} catch {
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
__name(cleanupWorkerCaBundleDir, "cleanupWorkerCaBundleDir");
|
|
342
|
+
function writeMergedWorkerCaBundle(contents) {
|
|
343
|
+
const dir = fs.mkdtempSync(path.join(os.tmpdir(), "qwen-worker-ca-"));
|
|
344
|
+
mintedWorkerCaBundleDirs.add(dir);
|
|
345
|
+
if (!workerCaBundleExitHookRegistered) {
|
|
346
|
+
workerCaBundleExitHookRegistered = true;
|
|
347
|
+
process.once("exit", cleanupMintedWorkerCaBundleDirs);
|
|
348
|
+
}
|
|
349
|
+
const bundlePath = path.join(dir, "ca-bundle.pem");
|
|
350
|
+
fs.writeFileSync(bundlePath, contents, { mode: 384 });
|
|
351
|
+
return bundlePath;
|
|
352
|
+
}
|
|
353
|
+
__name(writeMergedWorkerCaBundle, "writeMergedWorkerCaBundle");
|
|
354
|
+
function cleanupMintedWorkerCaBundleDirs() {
|
|
355
|
+
const swept = [...mintedWorkerCaBundleDirs];
|
|
356
|
+
for (const minted of swept) {
|
|
357
|
+
cleanupWorkerCaBundleDir(minted);
|
|
358
|
+
}
|
|
359
|
+
mintedWorkerCaBundleDirs.clear();
|
|
360
|
+
return swept;
|
|
361
|
+
}
|
|
362
|
+
__name(cleanupMintedWorkerCaBundleDirs, "cleanupMintedWorkerCaBundleDirs");
|
|
363
|
+
function resolveWorkerCaCertPath(daemonCertPath, existing) {
|
|
364
|
+
if (!existing || existing === daemonCertPath) return daemonCertPath;
|
|
365
|
+
const cacheKey = `${existing}\0${daemonCertPath}`;
|
|
366
|
+
const sources = [existing, daemonCertPath];
|
|
367
|
+
const cached = mergedWorkerCaBundles.get(cacheKey);
|
|
368
|
+
if (cached) {
|
|
369
|
+
try {
|
|
370
|
+
fs.statSync(cached.bundlePath);
|
|
371
|
+
if (sources.every((src, i) => sourceStamp(src) === cached.sourceStamps[i])) {
|
|
372
|
+
return cached.bundlePath;
|
|
373
|
+
}
|
|
374
|
+
} catch {
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
try {
|
|
378
|
+
const sourceStamps = sources.map(sourceStamp);
|
|
379
|
+
const operatorBlocks = extractCertificateBlocks(
|
|
380
|
+
fs.readFileSync(existing, "utf8"),
|
|
381
|
+
existing
|
|
382
|
+
);
|
|
383
|
+
if (!operatorBlocks) {
|
|
384
|
+
warnWorkerCaMergeFallback(
|
|
385
|
+
existing,
|
|
386
|
+
daemonCertPath,
|
|
387
|
+
"no-operator-blocks",
|
|
388
|
+
// Three causes reject a file, not one: markers, decoding, and DER.
|
|
389
|
+
// Blaming markers alone tells an operator whose CA is truncated or
|
|
390
|
+
// hand-edited to fix lines that are already correct — and after boot
|
|
391
|
+
// this warning is the only diagnostic they get, so it has to name the
|
|
392
|
+
// same three the boot-time check does.
|
|
393
|
+
"it holds no PEM certificate block Node can load (every -----BEGIN/END CERTIFICATE----- marker must sit alone on its own line and every block must decode, and a DER file is never read at all)"
|
|
394
|
+
);
|
|
395
|
+
return daemonCertPath;
|
|
396
|
+
}
|
|
397
|
+
const daemonBlocks = extractCertificateBlocks(
|
|
398
|
+
fs.readFileSync(daemonCertPath, "utf8"),
|
|
399
|
+
daemonCertPath
|
|
400
|
+
);
|
|
401
|
+
if (!daemonBlocks) {
|
|
402
|
+
warnWorkerCaMergeFallback(
|
|
403
|
+
existing,
|
|
404
|
+
daemonCertPath,
|
|
405
|
+
"no-daemon-blocks",
|
|
406
|
+
"the daemon cert holds no PEM certificate block to merge into"
|
|
407
|
+
);
|
|
408
|
+
return daemonCertPath;
|
|
409
|
+
}
|
|
410
|
+
const bundlePath = writeMergedWorkerCaBundle(
|
|
411
|
+
`${[...operatorBlocks, ...daemonBlocks].join("\n")}
|
|
412
|
+
`
|
|
413
|
+
);
|
|
414
|
+
const superseded = mergedWorkerCaBundles.get(cacheKey);
|
|
415
|
+
mergedWorkerCaBundles.set(cacheKey, { bundlePath, sourceStamps });
|
|
416
|
+
if (superseded) {
|
|
417
|
+
const dir = path.dirname(superseded.bundlePath);
|
|
418
|
+
mintedWorkerCaBundleDirs.delete(dir);
|
|
419
|
+
cleanupWorkerCaBundleDir(dir);
|
|
420
|
+
}
|
|
421
|
+
for (const family of WORKER_CA_MERGE_FALLBACK_FAMILIES) {
|
|
422
|
+
warnedWorkerCaMergeFallbacks.delete(
|
|
423
|
+
workerCaMergeFallbackKey(existing, daemonCertPath, family)
|
|
424
|
+
);
|
|
425
|
+
}
|
|
426
|
+
return bundlePath;
|
|
427
|
+
} catch (err) {
|
|
428
|
+
warnWorkerCaMergeFallback(
|
|
429
|
+
existing,
|
|
430
|
+
daemonCertPath,
|
|
431
|
+
// An inspection that could not run blames nothing about the file's
|
|
432
|
+
// contents; sharing the read-error family would let a first ENOENT
|
|
433
|
+
// silence the later, now-accurate inspection-failure diagnosis.
|
|
434
|
+
err instanceof ExtraCaInspectionError ? "inspection-failed" : "read-error",
|
|
435
|
+
err instanceof Error ? err.message : String(err)
|
|
436
|
+
);
|
|
437
|
+
return daemonCertPath;
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
__name(resolveWorkerCaCertPath, "resolveWorkerCaCertPath");
|
|
184
441
|
function createWorkerEnv(opts) {
|
|
185
442
|
const env = { ...opts.baseEnv ?? process.env };
|
|
186
443
|
env["QWEN_CODE_NO_RELAUNCH"] = "true";
|
|
187
444
|
env["QWEN_CODE_SERVE"] = "1";
|
|
445
|
+
if (opts.tlsCaCertPath) {
|
|
446
|
+
env[NODE_EXTRA_CA_CERTS_ENV2] = resolveWorkerCaCertPath(
|
|
447
|
+
opts.tlsCaCertPath,
|
|
448
|
+
env[NODE_EXTRA_CA_CERTS_ENV2]
|
|
449
|
+
);
|
|
450
|
+
}
|
|
188
451
|
env[CHANNEL_DAEMON_WORKER_SENTINEL] = randomUUID();
|
|
189
452
|
env[QWEN_DAEMON_URL_ENV] = opts.daemonUrl;
|
|
190
453
|
env[QWEN_DAEMON_WORKSPACE_ENV] = opts.workspace;
|
|
@@ -505,7 +768,8 @@ function createChannelWorkerSupervisor(opts) {
|
|
|
505
768
|
daemonUrl: opts.daemonUrl,
|
|
506
769
|
workspace: opts.workspace,
|
|
507
770
|
...opts.daemonToken ? { daemonToken: opts.daemonToken } : {},
|
|
508
|
-
...opts.workerBaseEnv ? { baseEnv: opts.workerBaseEnv } : {}
|
|
771
|
+
...opts.workerBaseEnv ? { baseEnv: opts.workerBaseEnv } : {},
|
|
772
|
+
...opts.tlsCaCertPath ? { tlsCaCertPath: opts.tlsCaCertPath } : {}
|
|
509
773
|
});
|
|
510
774
|
const promptAuthorization = env[CHANNEL_DAEMON_WORKER_SENTINEL];
|
|
511
775
|
registerChannelWorkerPromptAuthorization(
|
|
@@ -1205,7 +1469,16 @@ function createChannelWorkerSupervisor(opts) {
|
|
|
1205
1469
|
__name(createChannelWorkerSupervisor, "createChannelWorkerSupervisor");
|
|
1206
1470
|
|
|
1207
1471
|
export {
|
|
1472
|
+
ExtraCaInspectionError,
|
|
1473
|
+
loadableCertificates,
|
|
1208
1474
|
ChannelWorkerStopError,
|
|
1209
1475
|
ChannelWorkerStartupError,
|
|
1476
|
+
cleanupMintedWorkerCaBundleDirs,
|
|
1477
|
+
resolveWorkerCaCertPath,
|
|
1210
1478
|
createChannelWorkerSupervisor
|
|
1211
1479
|
};
|
|
1480
|
+
/**
|
|
1481
|
+
* @license
|
|
1482
|
+
* Copyright 2026 Qwen Team
|
|
1483
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
1484
|
+
*/
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
|
-
|
|
5
|
-
} from "./chunk-
|
|
4
|
+
parseToolCallArguments
|
|
5
|
+
} from "./chunk-ZYNTSXWK.js";
|
|
6
6
|
import {
|
|
7
7
|
OpenAIContentConverter,
|
|
8
8
|
TaggedThinkingParser,
|
|
9
9
|
openaiRequestCaptureContext
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-H33EQVMG.js";
|
|
11
11
|
import {
|
|
12
12
|
safeJsonParse
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-ABS25QER.js";
|
|
14
14
|
import {
|
|
15
15
|
runtimeDiagnostics
|
|
16
16
|
} from "./chunk-VNOVK4I7.js";
|
|
@@ -18,64 +18,61 @@ import {
|
|
|
18
18
|
reportOpenAiChunk,
|
|
19
19
|
reportOpenAiRequest,
|
|
20
20
|
reportOpenAiResponse
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-B7CDU2SL.js";
|
|
22
22
|
import {
|
|
23
23
|
applyOfficialOpenAIPromptCaching,
|
|
24
24
|
isOfficialOpenAIEndpoint
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-PQEISIKS.js";
|
|
26
26
|
import {
|
|
27
27
|
DashScopeOpenAICompatibleProvider,
|
|
28
28
|
DefaultOpenAICompatibleProvider
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-EB6QRGHM.js";
|
|
30
30
|
import {
|
|
31
31
|
getCurrentAgentId
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-CMHFCLBU.js";
|
|
33
33
|
import {
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
InvalidStreamError,
|
|
35
|
+
getToolCallPreparations
|
|
36
|
+
} from "./chunk-CFKIH3D3.js";
|
|
36
37
|
import {
|
|
37
38
|
DEFAULT_STREAM_IDLE_TIMEOUT_MS,
|
|
38
39
|
DEFAULT_STREAM_MAX_LIFETIME_MS,
|
|
39
40
|
MAX_STREAM_GUARD_TIMEOUT_MS,
|
|
40
41
|
QWEN_STREAM_IDLE_TIMEOUT_MS_ENV,
|
|
41
|
-
QWEN_STREAM_MAX_LIFETIME_MS_ENV
|
|
42
|
-
|
|
42
|
+
QWEN_STREAM_MAX_LIFETIME_MS_ENV,
|
|
43
|
+
REASONING_EFFORT_TIERS
|
|
44
|
+
} from "./chunk-2LD5U7Q3.js";
|
|
43
45
|
import {
|
|
44
46
|
createChildAbortController
|
|
45
47
|
} from "./chunk-DJ2GSRLV.js";
|
|
46
48
|
import {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
getRateLimitErrorDetails
|
|
51
|
-
} from "./chunk-LI4YHTQK.js";
|
|
52
|
-
import {
|
|
53
|
-
getToolCallPreparations
|
|
54
|
-
} from "./chunk-QKBYFU2Q.js";
|
|
49
|
+
getRateLimitErrorDetails,
|
|
50
|
+
getTransportCode
|
|
51
|
+
} from "./chunk-DYXFD5RO.js";
|
|
55
52
|
import {
|
|
56
53
|
ProtocolTagSanitizedEvent,
|
|
57
54
|
logProtocolTagSanitized
|
|
58
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-SZLBBZH4.js";
|
|
59
56
|
import {
|
|
60
57
|
isQwenFamilyWireModel,
|
|
61
58
|
isTieredEffortWireModel
|
|
62
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-XBVNNDPK.js";
|
|
63
60
|
import {
|
|
64
61
|
reconcileMaxTokens
|
|
65
62
|
} from "./chunk-FPGTNKCP.js";
|
|
66
63
|
import {
|
|
67
64
|
redactProxyError
|
|
68
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-PPKZ7JOE.js";
|
|
69
66
|
import {
|
|
70
67
|
isInForkExecution
|
|
71
|
-
} from "./chunk-
|
|
68
|
+
} from "./chunk-CAJTKR6W.js";
|
|
72
69
|
import {
|
|
73
70
|
createDebugLogger,
|
|
74
71
|
getErrorMessage,
|
|
75
72
|
getErrorStatus,
|
|
76
73
|
getErrorType,
|
|
77
74
|
isAbortError
|
|
78
|
-
} from "./chunk-
|
|
75
|
+
} from "./chunk-UHQFIS7N.js";
|
|
79
76
|
import {
|
|
80
77
|
GenerateContentResponse
|
|
81
78
|
} from "./chunk-64REQJJ2.js";
|
|
@@ -180,16 +177,28 @@ var DeepSeekOpenAICompatibleProvider = class extends DefaultOpenAICompatibleProv
|
|
|
180
177
|
static isDeepSeekProvider = isDeepSeekProvider;
|
|
181
178
|
static isDeepSeekHostname = isDeepSeekHostname;
|
|
182
179
|
/**
|
|
183
|
-
*
|
|
184
|
-
*
|
|
185
|
-
*
|
|
186
|
-
*
|
|
187
|
-
*
|
|
188
|
-
* the
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
180
|
+
* The full ladder, including `max`, only on a verified DeepSeek host.
|
|
181
|
+
* `isDeepSeekProvider` also routes here on a `deepseek` substring in the
|
|
182
|
+
* model name, which says nothing about what the endpoint accepts, so the
|
|
183
|
+
* capability follows the rule the module comment above already states: a
|
|
184
|
+
* decision about the wire shape DeepSeek's own API exposes uses
|
|
185
|
+
* `isDeepSeekHostname`. Elsewhere the generic ceiling applies.
|
|
186
|
+
*/
|
|
187
|
+
supportedReasoningEffortsFor(model) {
|
|
188
|
+
return isDeepSeekHostname(this.contentGeneratorConfig) ? REASONING_EFFORT_TIERS : super.supportedReasoningEffortsFor(model);
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Text-only DeepSeek APIs require message content to be a plain string, not
|
|
192
|
+
* an array of content parts. Flatten text-only request arrays into joined
|
|
193
|
+
* strings; non-text parts (image_url, audio, …) are replaced with an
|
|
194
|
+
* `[Unsupported content type: <type>]` placeholder so the request still goes
|
|
195
|
+
* through with a textual breadcrumb rather than silently dropping the part
|
|
196
|
+
* or raising mid-conversation. Models that explicitly declare image input
|
|
197
|
+
* retain multipart content for compatible gateways. Also translate the
|
|
198
|
+
* standard `reasoning.effort` config into DeepSeek's flat `reasoning_effort`
|
|
199
|
+
* body parameter — but only on actual DeepSeek hostnames, since the model-name
|
|
200
|
+
* fallback above can match self-hosted/strict OpenAI-compat backends that
|
|
201
|
+
* don't accept the DeepSeek extension.
|
|
193
202
|
*/
|
|
194
203
|
buildRequest(request, userPromptId) {
|
|
195
204
|
const baseRequest = super.buildRequest(request, userPromptId);
|
|
@@ -197,10 +206,11 @@ var DeepSeekOpenAICompatibleProvider = class extends DefaultOpenAICompatibleProv
|
|
|
197
206
|
if (!reshaped.messages?.length) {
|
|
198
207
|
return reshaped;
|
|
199
208
|
}
|
|
200
|
-
const messages = reshaped.messages.map(
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
209
|
+
const messages = reshaped.messages.map(
|
|
210
|
+
(message) => ensureReasoningContentOnAssistantMessage(
|
|
211
|
+
this.contentGeneratorConfig.modalities?.image ? message : flattenContentParts(message)
|
|
212
|
+
)
|
|
213
|
+
);
|
|
204
214
|
return {
|
|
205
215
|
...reshaped,
|
|
206
216
|
messages
|
|
@@ -286,6 +296,19 @@ function isZaiProvider(contentGeneratorConfig) {
|
|
|
286
296
|
return model.toLowerCase().startsWith("glm-");
|
|
287
297
|
}
|
|
288
298
|
__name(isZaiProvider, "isZaiProvider");
|
|
299
|
+
function isGlmTieredEffortModel(model) {
|
|
300
|
+
if (!model) {
|
|
301
|
+
return false;
|
|
302
|
+
}
|
|
303
|
+
const parsed = /^glm-(\d+)(?:\.(\d+))?/.exec(model.toLowerCase());
|
|
304
|
+
if (!parsed) {
|
|
305
|
+
return false;
|
|
306
|
+
}
|
|
307
|
+
const major = Number(parsed[1]);
|
|
308
|
+
const minor = Number(parsed[2] ?? 0);
|
|
309
|
+
return major > 5 || major === 5 && minor >= 2;
|
|
310
|
+
}
|
|
311
|
+
__name(isGlmTieredEffortModel, "isGlmTieredEffortModel");
|
|
289
312
|
var ZaiOpenAICompatibleProvider = class extends DefaultOpenAICompatibleProvider {
|
|
290
313
|
static {
|
|
291
314
|
__name(this, "ZaiOpenAICompatibleProvider");
|
|
@@ -294,6 +317,17 @@ var ZaiOpenAICompatibleProvider = class extends DefaultOpenAICompatibleProvider
|
|
|
294
317
|
static isZaiHostname = isZaiHostname;
|
|
295
318
|
// Latch so the skipped-flatten warning fires once per provider lifetime.
|
|
296
319
|
nonZaiHostnameFlattenWarned = false;
|
|
320
|
+
/**
|
|
321
|
+
* The full ladder, including `max`, only on a verified Z.ai host running a
|
|
322
|
+
* GLM-5.2+ model. Both halves matter: `isZaiProvider` also routes here on a
|
|
323
|
+
* bare `glm-*` model name, which says nothing about what an arbitrary
|
|
324
|
+
* self-hosted backend accepts, and older GLM ids predate the tiered field.
|
|
325
|
+
* Anything else keeps the generic ceiling, matching the hostname gate the
|
|
326
|
+
* wire reshape below already uses.
|
|
327
|
+
*/
|
|
328
|
+
supportedReasoningEffortsFor(model) {
|
|
329
|
+
return isZaiHostname(this.contentGeneratorConfig) && isGlmTieredEffortModel(model ?? this.contentGeneratorConfig.model) ? REASONING_EFFORT_TIERS : super.supportedReasoningEffortsFor(model);
|
|
330
|
+
}
|
|
297
331
|
buildRequest(request, userPromptId) {
|
|
298
332
|
const baseRequest = super.buildRequest(request, userPromptId);
|
|
299
333
|
if (isZaiHostname(this.contentGeneratorConfig)) {
|
|
@@ -456,6 +490,20 @@ var MiMoOpenAICompatibleProvider = class extends DefaultOpenAICompatibleProvider
|
|
|
456
490
|
// packages/core/src/core/openaiContentGenerator/pipeline.ts
|
|
457
491
|
init_esbuild_shims();
|
|
458
492
|
|
|
493
|
+
// packages/core/src/core/openaiContentGenerator/provider/openrouter.ts
|
|
494
|
+
init_esbuild_shims();
|
|
495
|
+
function isOpenRouterHostname(contentGeneratorConfig) {
|
|
496
|
+
const baseUrl = contentGeneratorConfig.baseUrl ?? "";
|
|
497
|
+
if (!baseUrl) return false;
|
|
498
|
+
try {
|
|
499
|
+
const hostname = new URL(baseUrl).hostname.toLowerCase();
|
|
500
|
+
return hostname === "openrouter.ai" || hostname.endsWith(".openrouter.ai");
|
|
501
|
+
} catch {
|
|
502
|
+
return false;
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
__name(isOpenRouterHostname, "isOpenRouterHostname");
|
|
506
|
+
|
|
459
507
|
// packages/core/src/core/openaiContentGenerator/streamingToolCallParser.ts
|
|
460
508
|
init_esbuild_shims();
|
|
461
509
|
var debugLogger2 = createDebugLogger("STREAMING_TOOL_CALL_PARSER");
|
|
@@ -705,14 +753,7 @@ var StreamingToolCallParser = class {
|
|
|
705
753
|
hasInvalidToolCallArguments() {
|
|
706
754
|
for (const [index, buffer] of this.buffers.entries()) {
|
|
707
755
|
if (!this.toolCallMeta.get(index)?.name || buffer.length === 0) continue;
|
|
708
|
-
|
|
709
|
-
const args = JSON.parse(buffer);
|
|
710
|
-
if (typeof args !== "object" || args === null || Array.isArray(args)) {
|
|
711
|
-
return true;
|
|
712
|
-
}
|
|
713
|
-
} catch {
|
|
714
|
-
return true;
|
|
715
|
-
}
|
|
756
|
+
if (!parseToolCallArguments(buffer).ok) return true;
|
|
716
757
|
}
|
|
717
758
|
return false;
|
|
718
759
|
}
|
|
@@ -1020,7 +1061,7 @@ var StreamContentError = class extends Error {
|
|
|
1020
1061
|
var StreamInactivityTimeoutError = class extends Error {
|
|
1021
1062
|
constructor(idleMs, chunksReceived, streamLifetimeMs) {
|
|
1022
1063
|
super(
|
|
1023
|
-
`No stream activity for ${idleMs}ms after ${chunksReceived} chunks (stream lifetime: ${streamLifetimeMs}ms).
|
|
1064
|
+
`No stream activity for ${idleMs}ms after ${chunksReceived} chunks (stream lifetime: ${streamLifetimeMs}ms). For provider-backed models, increase modelProviders[providerId][].generationConfig.streamIdleTimeoutMs; provider configuration takes precedence, so model.generationConfig is ignored for those models. For runtime models, increase model.generationConfig.streamIdleTimeoutMs. Built-in Qwen OAuth models cannot be overridden via settings. Use ${QWEN_STREAM_IDLE_TIMEOUT_MS_ENV} for them or whenever no explicit value is active. Set the active value to 0 to disable it.`
|
|
1024
1065
|
);
|
|
1025
1066
|
this.idleMs = idleMs;
|
|
1026
1067
|
this.chunksReceived = chunksReceived;
|
|
@@ -1617,6 +1658,9 @@ var ContentGenerationPipeline = class {
|
|
|
1617
1658
|
if (isDeepSeekHostname(this.contentGeneratorConfig)) {
|
|
1618
1659
|
typed2["thinking"] = { type: "disabled" };
|
|
1619
1660
|
}
|
|
1661
|
+
if (!thinkingMandatory && isOpenRouterHostname(this.contentGeneratorConfig)) {
|
|
1662
|
+
typed2["reasoning"] = { enabled: false };
|
|
1663
|
+
}
|
|
1620
1664
|
}
|
|
1621
1665
|
if (thinkingMandatory) {
|
|
1622
1666
|
const typed2 = providerRequest;
|
|
@@ -1939,25 +1983,6 @@ var OpenAIContentGenerator = class {
|
|
|
1939
1983
|
async generateContentStream(request, userPromptId) {
|
|
1940
1984
|
return this.pipeline.executeStream(request, userPromptId);
|
|
1941
1985
|
}
|
|
1942
|
-
async countTokens(request) {
|
|
1943
|
-
try {
|
|
1944
|
-
const estimator = new RequestTokenizer();
|
|
1945
|
-
const result = await estimator.calculateTokens(request);
|
|
1946
|
-
return {
|
|
1947
|
-
totalTokens: result.totalTokens
|
|
1948
|
-
};
|
|
1949
|
-
} catch (error) {
|
|
1950
|
-
debugLogger5.warn(
|
|
1951
|
-
"Failed to calculate tokens with new tokenizer, falling back to simple method:",
|
|
1952
|
-
error
|
|
1953
|
-
);
|
|
1954
|
-
const content = JSON.stringify(request.contents);
|
|
1955
|
-
const totalTokens = Math.ceil(content.length / 4);
|
|
1956
|
-
return {
|
|
1957
|
-
totalTokens
|
|
1958
|
-
};
|
|
1959
|
-
}
|
|
1960
|
-
}
|
|
1961
1986
|
async embedContent(request) {
|
|
1962
1987
|
let text = "";
|
|
1963
1988
|
if (Array.isArray(request.contents)) {
|
|
@@ -2000,9 +2025,6 @@ var OpenAIContentGenerator = class {
|
|
|
2000
2025
|
);
|
|
2001
2026
|
}
|
|
2002
2027
|
}
|
|
2003
|
-
useSummarizedThinking() {
|
|
2004
|
-
return false;
|
|
2005
|
-
}
|
|
2006
2028
|
};
|
|
2007
2029
|
|
|
2008
2030
|
// packages/core/src/core/openaiContentGenerator/index.ts
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
AuthType
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-PPKZ7JOE.js";
|
|
6
6
|
import {
|
|
7
7
|
init_esbuild_shims
|
|
8
8
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -13,6 +13,10 @@ import {
|
|
|
13
13
|
// packages/core/src/utils/runtimeModelPrefix.ts
|
|
14
14
|
init_esbuild_shims();
|
|
15
15
|
var RUNTIME_SNAPSHOT_PREFIX = "$runtime|";
|
|
16
|
+
function buildRuntimeSnapshotId(authType, modelId) {
|
|
17
|
+
return `${RUNTIME_SNAPSHOT_PREFIX}${authType}|${modelId}`;
|
|
18
|
+
}
|
|
19
|
+
__name(buildRuntimeSnapshotId, "buildRuntimeSnapshotId");
|
|
16
20
|
function stripRuntimeSnapshotPrefix(modelId) {
|
|
17
21
|
let id = modelId;
|
|
18
22
|
while (id.startsWith(RUNTIME_SNAPSHOT_PREFIX)) {
|
|
@@ -110,6 +114,7 @@ __name(resolveModelIdSelector, "resolveModelIdSelector");
|
|
|
110
114
|
|
|
111
115
|
export {
|
|
112
116
|
RUNTIME_SNAPSHOT_PREFIX,
|
|
117
|
+
buildRuntimeSnapshotId,
|
|
113
118
|
stripRuntimeSnapshotPrefix,
|
|
114
119
|
resolveModelId,
|
|
115
120
|
buildModelIdContext
|