@qwen-code/qwen-code 0.19.8 → 0.19.9-preview.0
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/qc-helper/SKILL.md +1 -0
- package/bundled/qc-helper/docs/configuration/auth.md +40 -55
- package/bundled/qc-helper/docs/configuration/model-providers.md +224 -218
- package/bundled/qc-helper/docs/configuration/settings.md +68 -51
- package/bundled/qc-helper/docs/features/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +12 -2
- package/bundled/qc-helper/docs/features/channels/overview.md +82 -7
- package/bundled/qc-helper/docs/features/channels/wecom.md +6 -0
- package/bundled/qc-helper/docs/features/code-review.md +109 -41
- package/bundled/qc-helper/docs/features/commands.md +45 -44
- package/bundled/qc-helper/docs/features/computer-use.md +77 -0
- package/bundled/qc-helper/docs/features/hooks.md +29 -0
- package/bundled/qc-helper/docs/features/sub-agents.md +21 -0
- package/bundled/qc-helper/docs/features/tool-use-summaries.md +19 -23
- package/bundled/qc-helper/docs/integration-vscode.md +2 -2
- package/bundled/qc-helper/docs/qwen-serve.md +66 -23
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +2 -2
- package/bundled/review/DESIGN.md +303 -46
- package/bundled/review/SKILL.md +670 -165
- package/chunks/MaxSizedBox-BEVSAWZ6.js +70 -0
- package/chunks/{StandaloneSessionPicker-EYRGH6PJ.js → StandaloneSessionPicker-2DA2MDDE.js} +81 -79
- package/chunks/{acpAgent-GRFTTRHW.js → acpAgent-G3WJU3PS.js} +1318 -465
- package/chunks/agent-DD3WSHXE.js +68 -0
- package/chunks/agent-headless-MHI7U2CU.js +62 -0
- package/chunks/{anthropicContentGenerator-CPF22MA7.js → anthropicContentGenerator-56U3YCP2.js} +187 -31
- package/chunks/{artifact-tool-D233YJFH.js → artifact-tool-MIZLXBLF.js} +5 -5
- package/chunks/{askUserQuestion-MKL5ZTMC.js → askUserQuestion-XMJVPNWM.js} +6 -6
- package/chunks/bridge-HKEWPNB5.js +78 -0
- package/chunks/{ca-MKD32FQL.js → ca-C2JTT2N5.js} +68 -6
- package/chunks/channel-worker-group-K7QKH6IG.js +13 -0
- package/chunks/channel-worker-manager-YSFB4HUU.js +418 -0
- package/chunks/channel-worker-supervisor-QCKIOYZD.js +20 -0
- package/chunks/chunk-2FMQQXMM.js +38 -0
- package/chunks/{chunk-CSOTA7KX.js → chunk-2FO5GFKZ.js} +2 -2
- package/chunks/{chunk-QQDPRDVW.js → chunk-2HRYPZT5.js} +1 -1
- package/chunks/{chunk-UXEW557D.js → chunk-2J4ZWME4.js} +3 -3
- package/chunks/{chunk-P3XEEI3X.js → chunk-2TQXXQMI.js} +36 -7
- package/chunks/{chunk-GSHQYYIV.js → chunk-2UW5RFRP.js} +6 -26
- package/chunks/{chunk-6IAWPIQ6.js → chunk-2W3OOD4W.js} +5 -3
- package/chunks/{chunk-2PSWA5ID.js → chunk-2X56YUSZ.js} +1 -1
- package/chunks/{chunk-NQKLOAVJ.js → chunk-2Z5UX4KI.js} +2 -2
- package/chunks/chunk-3MX7D6QN.js +516 -0
- package/chunks/{chunk-EEN2TKST.js → chunk-43RXPU5Q.js} +2 -2
- package/chunks/{chunk-55ZMG67I.js → chunk-4LD5APFL.js} +4 -4
- package/chunks/{chunk-WF4FAXDL.js → chunk-4QZ3XHWE.js} +62 -62
- package/chunks/chunk-4QZADKJS.js +34 -0
- package/chunks/{chunk-UIDXQNMV.js → chunk-4WGODMVR.js} +1 -1
- package/chunks/{chunk-E6US47KI.js → chunk-4WKAA4KS.js} +1 -1
- package/chunks/{chunk-TI3BWD4D.js → chunk-54UZQ57N.js} +39 -19
- package/chunks/{chunk-3GONHQOA.js → chunk-57OAHC2Y.js} +1 -1
- package/chunks/{chunk-JZSY4WP3.js → chunk-5DTTYNB7.js} +1 -1
- package/chunks/chunk-5HBA2Z7V.js +28 -0
- package/chunks/{chunk-SKAZWEV5.js → chunk-5M6IDOMF.js} +35 -98
- package/chunks/{chunk-A4BMJM77.js → chunk-5O2XNYP6.js} +1 -0
- package/chunks/{chunk-FQNC62B2.js → chunk-5VHASII5.js} +11 -11
- package/chunks/{chunk-GO6LNQXT.js → chunk-6AM5D4ME.js} +1 -1
- package/chunks/{chunk-BJBWRCSK.js → chunk-6H67XLET.js} +1 -1
- package/chunks/{chunk-O7FIRWJV.js → chunk-6JPDCEDB.js} +3 -3
- package/chunks/{chunk-3UP777ZS.js → chunk-6RLROE6G.js} +1 -1
- package/chunks/{chunk-GN3F6PIU.js → chunk-6WPJRYLZ.js} +5 -5
- package/chunks/{chunk-ZERZSAZL.js → chunk-75DOP5OR.js} +2 -2
- package/chunks/chunk-7DKX4A5Z.js +91 -0
- package/chunks/{chunk-M7S4GK5Z.js → chunk-7IDCQ35Q.js} +147 -30
- package/chunks/{chunk-22MNNNXE.js → chunk-7NFB7LBQ.js} +11 -3
- package/chunks/{chunk-ZL5HN75Q.js → chunk-7R4DPSRA.js} +37 -3
- package/chunks/{chunk-VZ7HY3YU.js → chunk-7STBROEV.js} +3 -3
- package/chunks/{chunk-SAIILPQ3.js → chunk-7X7TEQNX.js} +5 -3
- package/chunks/{chunk-RMLZAUWH.js → chunk-A3U2TQUL.js} +10 -12
- package/chunks/{chunk-IRJWHZWU.js → chunk-A4UCTEB5.js} +2 -2
- package/chunks/{chunk-BOBRZZKD.js → chunk-A7W4GQRW.js} +5 -5
- package/chunks/{chunk-O33TBKDC.js → chunk-AAUZBE5Y.js} +155 -19
- package/chunks/{chunk-SQ2UATK7.js → chunk-ADLYZJYZ.js} +11 -11
- package/chunks/{chunk-QYUE6W3T.js → chunk-ALGGS7UH.js} +2 -39
- package/chunks/{chunk-WMPVYQ4P.js → chunk-ARKANCNX.js} +3 -2
- package/chunks/{chunk-IBY3Q3HG.js → chunk-AU4R7ACM.js} +967 -181
- package/chunks/{channel-worker-supervisor-NZQUOEFJ.js → chunk-B7MFJBKE.js} +190 -34
- package/chunks/{chunk-HW4N45EE.js → chunk-B7NUUEXC.js} +38 -11
- package/chunks/{chunk-3B26UVCX.js → chunk-BLPMRN4B.js} +39 -10
- package/chunks/{chunk-ZN5T4BHI.js → chunk-BPZALHVR.js} +2 -2
- package/chunks/{chunk-BVYU3ZTI.js → chunk-BXT6PQ73.js} +1020 -942
- package/chunks/{chunk-OFEVLU4C.js → chunk-CARU2RR2.js} +1 -1
- package/chunks/{chunk-HDOH3QYE.js → chunk-CEGKYZDB.js} +2 -2
- package/chunks/{chunk-GLE2YUPU.js → chunk-COH43MRJ.js} +1 -1
- package/chunks/{chunk-E5A7LHNN.js → chunk-CPBF7KYF.js} +1 -1
- package/chunks/{chunk-UWCTAVOD.js → chunk-CR3C7WXL.js} +1 -1
- package/chunks/{chunk-IWKSG2AR.js → chunk-CXAOG665.js} +1 -1
- package/chunks/{chunk-64WXLC72.js → chunk-DJ2GSRLV.js} +1 -1
- package/chunks/{chunk-QN5NZ3UQ.js → chunk-DMTGGOSA.js} +2 -2
- package/chunks/{chunk-27BHARDE.js → chunk-DMVA55W5.js} +2124 -30
- package/chunks/{chunk-JPALE3PA.js → chunk-DQCCLVQK.js} +6 -6
- package/chunks/{chunk-X2XNQQJI.js → chunk-E2UVIFI2.js} +186 -399
- package/chunks/{chunk-KHDZHZMH.js → chunk-E5Z2AVNV.js} +1 -1
- package/chunks/{chunk-E7EMCSUG.js → chunk-EAHMOXLL.js} +64 -42
- package/chunks/{chunk-VGGOPZUL.js → chunk-EJ3KGYWL.js} +36 -8
- package/chunks/{chunk-DIWVZ3VM.js → chunk-ERTHKDKN.js} +5 -5
- package/chunks/{chunk-UX6OTBVD.js → chunk-EX5OULP3.js} +2 -2
- package/chunks/{chunk-5MBO76SL.js → chunk-F333XEAU.js} +3 -3
- package/chunks/{chunk-OACJLMLD.js → chunk-FBU7WRZI.js} +18 -2
- package/chunks/{chunk-5IFG2VC4.js → chunk-FCMNKVXT.js} +1 -1
- package/chunks/chunk-FEOBU3FA.js +253 -0
- package/chunks/{chunk-LAXNEOBG.js → chunk-FI2WSOWX.js} +19 -3
- package/chunks/{chunk-E7KNELIZ.js → chunk-FSA7ERJ2.js} +2 -2
- package/chunks/{chunk-44NROQYV.js → chunk-GDQQRV43.js} +4 -4
- package/chunks/{chunk-ZE6E424U.js → chunk-GN5HJJBO.js} +2 -2
- package/chunks/{chunk-O2YT7VB4.js → chunk-GOXKNSDZ.js} +2 -65
- package/chunks/{chunk-V35MD7KN.js → chunk-GRC5HGPI.js} +1 -1
- package/chunks/{chunk-ON3JA3RU.js → chunk-GTENQOEJ.js} +7 -9
- package/chunks/{chunk-S6RLAIUR.js → chunk-GYTKQYDB.js} +1 -1
- package/chunks/{chunk-A2X3KLC3.js → chunk-GZXCZHCT.js} +3 -3
- package/chunks/{chunk-K5PGHDBN.js → chunk-H6XPXXMH.js} +1 -1
- package/chunks/{chunk-PMFULMLX.js → chunk-HCJTURZD.js} +2262 -384
- package/chunks/chunk-HGG2RRXD.js +445 -0
- package/chunks/{chunk-II73RK2S.js → chunk-HGT6JR3U.js} +20 -1
- package/chunks/{chunk-DICGXFAI.js → chunk-HJCVNZLQ.js} +11 -9
- package/chunks/{chunk-3GNOQZDC.js → chunk-HJUDVNCO.js} +17663 -14877
- package/chunks/{chunk-AYNCLGTW.js → chunk-HRUGYOJN.js} +8 -51
- package/chunks/{chunk-KYMBIKIW.js → chunk-HTHUX2T5.js} +1 -1
- package/chunks/{chunk-LQ7TMOCE.js → chunk-HTO4JFDZ.js} +1 -1
- package/chunks/{chunk-BUZ6HGL4.js → chunk-HWTL6MPR.js} +357 -59
- package/chunks/chunk-IDS7MSUP.js +74 -0
- package/chunks/{chunk-4CGOWHKM.js → chunk-J4MOFEOK.js} +2 -2
- package/chunks/chunk-JCD4FM7K.js +296 -0
- package/chunks/{chunk-22IFUCVR.js → chunk-JESCGQM3.js} +1 -1
- package/chunks/{chunk-JZHIQJOE.js → chunk-JGO6RFI2.js} +6 -6
- package/chunks/{chunk-X3YGAX7V.js → chunk-JGUT3LWZ.js} +9 -2
- package/chunks/{chunk-JRQ7EVGE.js → chunk-JW7OOJC6.js} +2 -2
- package/chunks/{chunk-OQXDAMKY.js → chunk-KF5MMGG4.js} +8 -8
- package/chunks/{chunk-42XGFRJS.js → chunk-KKRTYONM.js} +8 -6
- package/chunks/{chunk-GGQQA4JW.js → chunk-KSO42X3Z.js} +15 -2
- package/chunks/{chunk-MRO43B25.js → chunk-KW7NOTN6.js} +1 -1
- package/chunks/{chunk-54YZOP7P.js → chunk-L573Z2QZ.js} +11894 -5190
- package/chunks/{chunk-TLWA7TPR.js → chunk-L5U3ELZX.js} +2 -2
- package/chunks/{chunk-YHKAK72D.js → chunk-LHEOLOXU.js} +251 -63
- package/chunks/{chunk-H6EMK6QK.js → chunk-LQIDP6K5.js} +11913 -5207
- package/chunks/{chunk-I6WGFJJ3.js → chunk-LSEJG6AM.js} +73 -19
- package/chunks/{chunk-MZ7BABX3.js → chunk-LXLTBIDP.js} +44 -7
- package/chunks/{chunk-HLKG6CZN.js → chunk-M5GB774H.js} +1 -1
- package/chunks/{chunk-JCH35JB3.js → chunk-MKK4XGLF.js} +2 -2
- package/chunks/{chunk-YKZIAK7C.js → chunk-MO7O5722.js} +424 -40
- package/chunks/chunk-MR3PXB6E.js +48 -0
- package/chunks/{chunk-A5JOJ77H.js → chunk-MRYWYBQ4.js} +38 -15
- package/chunks/{chunk-332PWN27.js → chunk-NHDKSOEY.js} +1 -1
- package/chunks/{chunk-TSPB77TG.js → chunk-NRAFASYX.js} +1016 -2967
- package/chunks/{chunk-BMFMJINR.js → chunk-OA4JVLSA.js} +28 -2
- package/chunks/{chunk-P7M4GA57.js → chunk-OCPBI7J5.js} +1 -1
- package/chunks/chunk-OJAMDVF5.js +66 -0
- package/chunks/{chunk-IJRL2S3D.js → chunk-OKAIGAYW.js} +6 -6
- package/chunks/{chunk-FBET5XZ2.js → chunk-PEJWA3QQ.js} +29 -10
- package/chunks/{chunk-L4AMBVQG.js → chunk-PMKW35AT.js} +54 -22
- package/chunks/{chunk-AGHU5VRK.js → chunk-PZL23GTM.js} +1 -1
- package/chunks/{chunk-PC4ZXHU2.js → chunk-Q6TUALBE.js} +3 -3
- package/chunks/{chunk-FXGLL2HL.js → chunk-Q7YDKOGY.js} +1 -1
- package/chunks/{chunk-XOHNA2S6.js → chunk-QAW7PIHT.js} +3 -3
- package/chunks/{chunk-XYR5RUA5.js → chunk-QE2WJ7FS.js} +10 -3
- package/chunks/{chunk-LGFAYIKX.js → chunk-QHTIBUWB.js} +1 -1
- package/chunks/{chunk-P3MYAZBY.js → chunk-QMGX2KO2.js} +1 -1
- package/chunks/{chunk-Z3I3QJK3.js → chunk-QRUIS3DN.js} +1 -1
- package/chunks/{chunk-ITOGNELQ.js → chunk-QSWDGAIC.js} +2 -2
- package/chunks/{chunk-PUVCVELY.js → chunk-QUJOI7SR.js} +70 -8
- package/chunks/{chunk-GHOTR7HL.js → chunk-QUPXZXLV.js} +1 -1
- package/chunks/{chunk-6VK6FIMQ.js → chunk-R5D5JOAM.js} +415 -379
- package/chunks/{chunk-CD6USWHZ.js → chunk-R5XLNDE2.js} +2 -2
- package/chunks/{chunk-W7EEOR7D.js → chunk-RCEEXIOO.js} +8 -6
- package/chunks/{chunk-TLRYABYP.js → chunk-RKUWKYED.js} +1 -1
- package/chunks/{chunk-RNBYOUGV.js → chunk-RXFQM6FQ.js} +1 -1
- package/chunks/{chunk-QXPI7FEC.js → chunk-S3TWXGKA.js} +4 -4
- package/chunks/{chunk-2EM7ECZD.js → chunk-SMSFWUFY.js} +309 -80
- package/chunks/{chunk-FV7425LN.js → chunk-SPJQO2CE.js} +18 -5
- package/chunks/{chunk-MLZQVCF3.js → chunk-SZRN75WQ.js} +1 -1
- package/chunks/{chunk-7RYW5LQV.js → chunk-T2NCM2ET.js} +2 -2
- package/chunks/{chunk-Z2Z3GUXZ.js → chunk-TB6UDU4T.js} +1 -1
- package/chunks/{chunk-EXPMGZZV.js → chunk-TEGEBB2I.js} +1 -1
- package/chunks/{chunk-MX2YXRER.js → chunk-TJTKSVIV.js} +1 -1
- package/chunks/{chunk-CCGOFQV3.js → chunk-TQBODCFD.js} +8 -7
- package/chunks/chunk-TV6K2FB4.js +224 -0
- package/chunks/{chunk-H6BD2ELD.js → chunk-TYAMGABM.js} +2 -2
- package/chunks/{chunk-QYNNN7BK.js → chunk-TYLOFD2U.js} +2 -2
- package/chunks/{chunk-VRDMOSQS.js → chunk-UDXSXLER.js} +2 -2
- package/chunks/{chunk-DHOLNQLC.js → chunk-UFDX27PL.js} +60 -40
- package/chunks/{chunk-WHJQ3JUS.js → chunk-UGN6CTNZ.js} +10 -10
- package/chunks/{chunk-CHB5SLZZ.js → chunk-UNLRKDMW.js} +4 -4
- package/chunks/{chunk-CJCKDMWO.js → chunk-URK542T4.js} +1 -1
- package/chunks/{chunk-AHNXYU4O.js → chunk-V6WHFGST.js} +1 -1
- package/chunks/{chunk-ZTQ26VBE.js → chunk-VDDGDZMA.js} +1 -1
- package/chunks/{chunk-BOBOCR5H.js → chunk-VEETSXYX.js} +4 -4
- package/chunks/{chunk-OMX7CUOE.js → chunk-VGC4I5JJ.js} +1 -1
- package/chunks/{chunk-43W4YSO6.js → chunk-VJNBRRZG.js} +2 -2
- package/chunks/{chunk-WQTHLB5T.js → chunk-VKS7EIOA.js} +7 -7
- package/chunks/{chunk-J7RCB6N5.js → chunk-VVDNGM6X.js} +2 -2
- package/chunks/{chunk-ER3BKOLB.js → chunk-W7FJ3N32.js} +1 -1
- package/chunks/{chunk-3HX5LZ6R.js → chunk-WBL3FJEU.js} +2 -2
- package/chunks/{chunk-7LTB54MK.js → chunk-WIEO4CWB.js} +2 -2
- package/chunks/chunk-WMC6HH7Y.js +493 -0
- package/chunks/{chunk-FEJ2FZ3U.js → chunk-WTNZ6DXB.js} +2 -2
- package/chunks/{chunk-L46XKEGM.js → chunk-X6ODDESK.js} +5 -8
- package/chunks/chunk-XDPYM5DE.js +71 -0
- package/chunks/{chunk-3RW4AZJV.js → chunk-XFSFZCM5.js} +1 -1
- package/chunks/{chunk-2MPVVENX.js → chunk-XU457J4V.js} +2 -2
- package/chunks/{chunk-SIUQ3YYX.js → chunk-XVNQMZ2I.js} +1 -1
- package/chunks/{chunk-SYCJMSIJ.js → chunk-XWRJCPHC.js} +1 -1
- package/chunks/{chunk-SUAKHHK7.js → chunk-Y66VOBRP.js} +3 -3
- package/chunks/chunk-YAF2MQZ6.js +19 -0
- package/chunks/chunk-YHN5SUIJ.js +219 -0
- package/chunks/{chunk-BR4QREVK.js → chunk-YQ3U5MUC.js} +1 -1
- package/chunks/{chunk-Y6Z2O3WR.js → chunk-YUZI3WAC.js} +1 -1
- package/chunks/{chunk-YDOXPLYL.js → chunk-ZA74ZTQU.js} +4564 -1326
- package/chunks/{chunk-DCZWC4PF.js → chunk-ZGE3222J.js} +5 -5
- package/chunks/chunk-ZP4ZZJJG.js +448 -0
- package/chunks/{chunk-AHNJGLFV.js → chunk-ZPAHLFZU.js} +3 -3
- package/chunks/cli-entry-path-4VJ3Y6T2.js +10 -0
- package/chunks/{computer-use-WMY3UOBX.js → computer-use-SHA6C3ES.js} +50 -50
- package/chunks/config-utils-XSHOMMK4.js +24 -0
- package/chunks/contextCommand-HOAF5LUC.js +68 -0
- package/chunks/create-sub-session-EAB2U5XW.js +207 -0
- package/chunks/create-sub-session-WJOWBFEP.js +375 -0
- package/chunks/{cron-create-JSXEIPVS.js → cron-create-GMVKSXZT.js} +9 -9
- package/chunks/{cron-delete-OIFVEPGU.js → cron-delete-VDZKUAVK.js} +7 -7
- package/chunks/{cron-list-D4ZX4IOE.js → cron-list-UG7C7RAR.js} +14 -10
- package/chunks/{daemon-WPAENEBW.js → daemon-MI5HF26N.js} +1074 -61
- package/chunks/daemon-status-provider-KFL3LRTP.js +76 -0
- package/chunks/{de-ZFPPQVSF.js → de-2VCDRDGU.js} +68 -6
- package/chunks/{devtools-FM6GJPYG.js → devtools-4QFYJT6U.js} +3 -3
- package/chunks/{dist-O2IRTRPP.js → dist-IEXZC5ZR.js} +10 -10
- package/chunks/{dist-SCFLLYMK.js → dist-PQK4GCKA.js} +12 -11
- package/chunks/{dist-63IS3ZMI.js → dist-PZV5RKM6.js} +4 -4
- package/chunks/{dist-E6UANPIM.js → dist-U75JK3PF.js} +1011 -197
- package/chunks/{dist-H2AEJCZ5.js → dist-VXO7QBON.js} +5 -5
- package/chunks/{dist-Z34QPAQW.js → dist-WH4TZSH3.js} +529 -79
- package/chunks/{dist-BEXOZXLQ.js → dist-X2ABIW5R.js} +36 -15
- package/chunks/earlyInputCapture-PKAQJMIP.js +69 -0
- package/chunks/{edit-OTYWAXGP.js → edit-6TXLYHJ2.js} +51 -51
- package/chunks/{en-N4EPZAQI.js → en-NJCA3TAA.js} +78 -6
- package/chunks/{enter-worktree-HNYBDVCX.js → enter-worktree-ZTILGPJX.js} +50 -50
- package/chunks/{enterPlanMode-CJCNGT63.js → enterPlanMode-62HRAMCH.js} +66 -51
- package/chunks/environment-OYA3ZVEL.js +89 -0
- package/chunks/errors-BFXOUUUR.js +75 -0
- package/chunks/{exit-worktree-DUUKOE3X.js → exit-worktree-HHJ5M6MV.js} +50 -50
- package/chunks/{exitPlanMode-AMMSXOAJ.js → exitPlanMode-M3SWHCL7.js} +51 -51
- package/chunks/{fast-path-OV6NIP3K.js → fast-path-3VMPLM74.js} +8 -8
- package/chunks/{fast-path-settings-7RIFI3PK.js → fast-path-settings-DAOVFADC.js} +8 -6
- package/chunks/{fileFromPath-IBEHA3CO.js → fileFromPath-UDALK7FM.js} +3 -3
- package/chunks/{fr-5WWMY53B.js → fr-5F3E7WKD.js} +68 -6
- package/chunks/{gemini-NQ3WWBKB.js → gemini-ZCGVYOJL.js} +181 -110
- package/chunks/{geminiContentGenerator-CDUNEJQE.js → geminiContentGenerator-XBYBAIDQ.js} +9 -9
- package/chunks/{getMachineId-bsd-4CASPIU4.js → getMachineId-bsd-EXV7SWPA.js} +3 -3
- package/chunks/{getMachineId-darwin-HPQPEMZR.js → getMachineId-darwin-IUOMFXU3.js} +3 -3
- package/chunks/{getMachineId-linux-AUARKYHL.js → getMachineId-linux-K7XJYFHL.js} +2 -2
- package/chunks/{getMachineId-unsupported-S32ZDA2T.js → getMachineId-unsupported-EA5FDRJ6.js} +2 -2
- package/chunks/{getMachineId-win-4EFLHYIJ.js → getMachineId-win-KBA6RAI5.js} +3 -3
- package/chunks/{glob-ROV3YS4R.js → glob-UOEYQNHN.js} +97 -75
- package/chunks/{grep-NRITKDCD.js → grep-OQM3CH7W.js} +50 -50
- package/chunks/handleAutoUpdate-ORBYVJHZ.js +69 -0
- package/chunks/i18n-NBP574CO.js +84 -0
- package/chunks/initializer-CWD7TCCD.js +73 -0
- package/chunks/installationInfo-CHPDUPWC.js +65 -0
- package/chunks/{ja-CUHZOLEJ.js → ja-66J6B53L.js} +69 -7
- package/chunks/{keychain-token-storage-UJV5XP4Z.js → keychain-token-storage-AU22CQI6.js} +4 -4
- package/chunks/{kittyProtocolDetector-OJRCJLIU.js → kittyProtocolDetector-HCNNKJTI.js} +2 -2
- package/chunks/list-ZTTO362W.js +76 -0
- package/chunks/loadedSettingsAdapter-V4ZTRKUO.js +70 -0
- package/chunks/{loop-wakeup-OHWEMFP5.js → loop-wakeup-C4EXLYVA.js} +10 -10
- package/chunks/{lowlight-FYAAUU5J.js → lowlight-J2OZNPCA.js} +1 -1
- package/chunks/{ls-7MFU2QYW.js → ls-2OUTG3IZ.js} +6 -6
- package/chunks/{lsp-XHDTPTGV.js → lsp-4VMNXZW6.js} +4 -4
- package/chunks/mcp-UH5PSGIK.js +70 -0
- package/chunks/{monitor-FL2ZO33W.js → monitor-F4NYEU5J.js} +50 -50
- package/chunks/{multipart-parser-AJ4WASWR.js → multipart-parser-AWZKXSQN.js} +3 -3
- package/chunks/nonInteractiveCli-7IHPXVNH.js +129 -0
- package/chunks/{notebook-edit-6PULTHL5.js → notebook-edit-HPDXNGQH.js} +51 -51
- package/chunks/openaiContentGenerator-OBDNNOE2.js +56 -0
- package/chunks/pidfile-AUMGYIOK.js +73 -0
- package/chunks/{pt-OLYN42DS.js → pt-TFZO5Y6T.js} +68 -6
- package/chunks/{qwenContentGenerator-NX2E7PB7.js → qwenContentGenerator-LH2U2YRG.js} +52 -52
- package/chunks/{qwenOAuth2-ZV7YLMND.js → qwenOAuth2-LEYOU7RU.js} +9 -9
- package/chunks/read-file-HUUFBLEO.js +30 -0
- package/chunks/{read-mcp-resource-CNQHBSJM.js → read-mcp-resource-JUFHCKSC.js} +5 -5
- package/chunks/{read-package-up-ER5OJUGP.js → read-package-up-TCM6I7S2.js} +2 -2
- package/chunks/{record-artifact-SQ2OKRJW.js → record-artifact-DWSMBXYY.js} +4 -4
- package/chunks/ripGrep-C7X33LU6.js +60 -0
- package/chunks/{ru-LDM3GWVQ.js → ru-4L4LFHIT.js} +68 -6
- package/chunks/{run-qwen-serve-JK2DL7PI.js → run-qwen-serve-DGW5AFDJ.js} +1465 -283
- package/chunks/runtime-NYUSLBEZ.js +99 -0
- package/chunks/{scheduler-O4IGVZKK.js → scheduler-5VKDXULT.js} +51 -51
- package/chunks/{send-message-76GT3JMC.js → send-message-JZ752NWD.js} +7 -7
- package/chunks/serve-UTAHSFXH.js +76 -0
- package/chunks/{server-SGNPKX2O.js → server-VUHSYSUV.js} +9088 -1817
- package/chunks/{session-5BNM25EZ.js → session-QSGSSNFB.js} +340 -135
- package/chunks/settings-X24RYEED.js +120 -0
- package/chunks/shell-4MSI2R4O.js +70 -0
- package/chunks/{skill-I22QK5XS.js → skill-JR3GTNVZ.js} +24 -24
- package/chunks/spawnChannel-RFAAO44J.js +70 -0
- package/chunks/{src-7XL4G4DC.js → src-VLI3TKEY.js} +4 -4
- package/chunks/{src-BBQSM46M.js → src-YDBNMIIM.js} +183 -53
- package/chunks/standalone-update-4CY4HKGC.js +79 -0
- package/chunks/{startInteractiveUI-JII36UGN.js → startInteractiveUI-FOD7MMVB.js} +2368 -1923
- package/chunks/stdioHelpers-UMY72QRP.js +14 -0
- package/chunks/{syntheticOutput-F7LSDCAR.js → syntheticOutput-LELY6HAI.js} +5 -5
- package/chunks/task-create-QY3BIMNM.js +23 -0
- package/chunks/{task-list-TGGJX7EA.js → task-list-D2U47WBJ.js} +11 -10
- package/chunks/{task-stop-W7NGTMYQ.js → task-stop-N6E5IYLH.js} +4 -4
- package/chunks/{task-update-XYWMHJGJ.js → task-update-HJCQILLB.js} +13 -12
- package/chunks/{team-create-A7NUU5AQ.js → team-create-ZLQSU2E3.js} +50 -50
- package/chunks/{team-delete-UHQQ2QQX.js → team-delete-RCWYDRF4.js} +11 -10
- package/chunks/{team-plan-approval-TOQRJ2KI.js → team-plan-approval-YUAYBYLS.js} +50 -50
- package/chunks/theme-manager-SKNEBMOG.js +64 -0
- package/chunks/{todoWrite-C4ZAMSR3.js → todoWrite-FKCGATPJ.js} +6 -6
- package/chunks/{tool-search-SZ4EFS2T.js → tool-search-V5J3TGWY.js} +24 -24
- package/chunks/total-session-admission-2WIH72I3.js +72 -0
- package/chunks/tree-sitter-YJVE2ZUK.js +2980 -0
- package/chunks/trustedFolders-JF265CRI.js +80 -0
- package/chunks/types-ML3TRJQ5.js +16 -0
- package/chunks/updateCheck-AMXNPBP6.js +69 -0
- package/chunks/updateEventEmitter-5MKC7BLQ.js +10 -0
- package/chunks/validateNonInterActiveAuth-6YHQO7PD.js +194 -0
- package/chunks/{version-NO2XSNNP.js → version-UEJJK7PE.js} +3 -3
- package/chunks/{web-fetch-UYGMOHW4.js → web-fetch-QGODBB6S.js} +8 -8
- package/chunks/{workflow-WO2H6NRI.js → workflow-5YFA5V4M.js} +51 -51
- package/chunks/workspace-providers-status-LMBLBNR7.js +73 -0
- package/chunks/workspace-registration-store-VV2S4MSV.js +27 -0
- package/chunks/workspace-registry-BVMPYRLN.js +76 -0
- package/chunks/workspace-service-PUYIZ3J4.js +86 -0
- package/chunks/workspace-skills-status-CJ7J2KPP.js +72 -0
- package/chunks/{write-file-PX2Z7IBE.js → write-file-OV77M6X7.js} +51 -51
- package/chunks/{yargs-B64EYTCF.js → yargs-6H2AUULL.js} +2 -2
- package/chunks/{zh-J4F6QWQV.js → zh-FSAH32JB.js} +79 -7
- package/chunks/{zh-TW-XVDWOLSW.js → zh-TW-D2YIE2LO.js} +79 -7
- package/cli.js +18 -17
- package/locales/ca.js +91 -7
- package/locales/de.js +90 -7
- package/locales/en.js +109 -7
- package/locales/fr.js +91 -7
- package/locales/ja.js +93 -7
- package/locales/pt.js +90 -7
- package/locales/ru.js +90 -7
- package/locales/zh-TW.js +106 -7
- package/locales/zh.js +106 -7
- package/package.json +3 -6
- package/web-shell/assets/{arc-BWyoJpY2.js → arc-CObt_TK9.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-BT0mGrz2.js → architectureDiagram-3BPJPVTR-B7aiJ6CK.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-BLgUWvyf.js → blockDiagram-GPEHLZMM-BSK2CrID.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-DYx9M7oU.js → c4Diagram-AAUBKEIU-Bhx2p7T_.js} +1 -1
- package/web-shell/assets/channel-BBaLq8MV.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-CfMHWbuZ.js → chunk-2J33WTMH-c3Hzv0Ni.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-B1URoqEV.js → chunk-4BX2VUAB-DNXaK7ZF.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-DAIaM4QF.js → chunk-55IACEB6-BXjvDj_i.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-B2X34knw.js → chunk-727SXJPM-B6CaKFp-.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-Cif-zLTQ.js → chunk-AQP2D5EJ-tij6Mz9B.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-H18WCXdY.js → chunk-FMBD7UC4-DdlsGk2h.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-YFtetHi0.js → chunk-ND2GUHAM-CdgGZSHE.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-By2hiH3r.js → chunk-QZHKN3VN-D8oJn1C0.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-B2ZK6sWE.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-B2ZK6sWE.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-VrcnnLZu.js → cose-bilkent-S5V4N54A-BUVmNp1Y.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-CGo-IaVV.js → dagre-BM42HDAG-CO4q310O.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-Dl4QjzIB.js → diagram-2AECGRRQ-C6gFvWkg.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-qMLmsO0u.js → diagram-5GNKFQAL-NG2I_c0h.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-CHlmuxPI.js → diagram-KO2AKTUF-DFKMS6I9.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-BUwU3GwT.js → diagram-LMA3HP47-BiElfsfP.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-HEhwPDUM.js → diagram-OG6HWLK6-zLWDYUqu.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-1n0llBmM.js → erDiagram-TEJ5UH35-DoVaazhK.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-BN74uMnt.js → flowDiagram-I6XJVG4X-0RLz-mXg.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-BoOq78i3.js → ganttDiagram-6RSMTGT7-C-eX1A39.js} +3 -3
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-CN8b00c8.js → gitGraphDiagram-PVQCEYII-BauQu1Bu.js} +1 -1
- package/web-shell/assets/index-3uAT3ehO.css +5 -0
- package/web-shell/assets/index-CVHa2QH7.js +3 -0
- package/web-shell/assets/index-D1KigWat.js +1128 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-CCurnIna.js → infoDiagram-5YYISTIA-C800cFvZ.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-AwuRqdUP.js → ishikawaDiagram-YF4QCWOH-CFK1Jk6e.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-B7IICk-E.js → journeyDiagram-JHISSGLW-Cjx0WAC4.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-BYF0OKhx.js → kanban-definition-UN3LZRKU-DWMDHbiv.js} +1 -1
- package/web-shell/assets/{linear-GWWguGfD.js → linear-vpW4FrZs.js} +1 -1
- package/web-shell/assets/{mermaid.core-JqtkxvCl.js → mermaid.core-DsHRUnDd.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-B0MmHsZ6.js → mindmap-definition-RKZ34NQL-D3Eb1cAK.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-DhImUZLQ.js → pieDiagram-4H26LBE5-Cr2-6sWt.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DGeSC3DT.js → quadrantDiagram-W4KKPZXB-Yd7yUgVp.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-DkspY6Re.js → requirementDiagram-4Y6WPE33-BE6SprL8.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-CaOofS2x.js → sankeyDiagram-5OEKKPKP-DzkuMK8d.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DFQ_kFnN.js → sequenceDiagram-3UESZ5HK-wD9A3Dhi.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-D3snw0Tz.js → stateDiagram-AJRCARHV-BOp5q1Nm.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BDsWUmPG.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-l4zH8nLM.js → timeline-definition-PNZ67QCA-Btc08sUA.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-BnRlA98M.js → vennDiagram-CIIHVFJN-Bv6upsOA.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-BS0xUdmd.js → wardley-L42UT6IY-D-XamnCK.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-DKGBUWyQ.js → wardleyDiagram-YWT4CUSO-BbP_5Wfp.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-DVb2HuOB.js → xychartDiagram-2RQKCTM6-CO5Hh28b.js} +1 -1
- package/web-shell/index.html +16 -4
- package/chunks/MaxSizedBox-5DT2SD7B.js +0 -71
- package/chunks/agent-H2DGKS77.js +0 -68
- package/chunks/agent-headless-KFMFIT6J.js +0 -62
- package/chunks/bridge-NA3ZQQKJ.js +0 -78
- package/chunks/chunk-5P5XGNYH.js +0 -93
- package/chunks/chunk-6SHO7WFF.js +0 -79
- package/chunks/chunk-IFEWJXFS.js +0 -37
- package/chunks/chunk-XNXVCNAT.js +0 -88
- package/chunks/contextCommand-LXFZRP4L.js +0 -68
- package/chunks/daemon-status-provider-GJRXY5EN.js +0 -76
- package/chunks/earlyInputCapture-KNOYZ4MJ.js +0 -69
- package/chunks/environment-ATFTYMLZ.js +0 -88
- package/chunks/errors-A54HAADA.js +0 -75
- package/chunks/handleAutoUpdate-CEZJAARW.js +0 -65
- package/chunks/initializer-BRFJKRRX.js +0 -71
- package/chunks/list-KVHF7O4X.js +0 -73
- package/chunks/loadedSettingsAdapter-LL5PSFKX.js +0 -68
- package/chunks/mcp-3GCXRTOQ.js +0 -68
- package/chunks/nonInteractiveCli-PTQI3DV6.js +0 -119
- package/chunks/openaiContentGenerator-YE42PKCY.js +0 -56
- package/chunks/pidfile-NZYSCFRK.js +0 -73
- package/chunks/read-file-33XGP5HF.js +0 -30
- package/chunks/ripGrep-QWZLGTAN.js +0 -60
- package/chunks/serve-JTMIGANH.js +0 -74
- package/chunks/settings-3MI4XXP6.js +0 -118
- package/chunks/shell-YJKBE67T.js +0 -68
- package/chunks/spawnChannel-UNV6W4DU.js +0 -70
- package/chunks/task-create-WCHTB435.js +0 -22
- package/chunks/theme-manager-WZ4RRMMB.js +0 -64
- package/chunks/total-session-admission-ULXJWXFV.js +0 -72
- package/chunks/trustedFolders-LAZZPZ3D.js +0 -79
- package/chunks/types-QX5C3CHJ.js +0 -12
- package/chunks/updateCheck-KONLM73X.js +0 -65
- package/chunks/validateNonInterActiveAuth-MPKSRCXD.js +0 -184
- package/chunks/workspace-providers-status-3W7E7DFW.js +0 -71
- package/chunks/workspace-registry-SXJZNN3O.js +0 -74
- package/chunks/workspace-service-CZRQZ4Q4.js +0 -80
- package/chunks/workspace-skills-status-K7WFREPD.js +0 -70
- package/node_modules/@qwen-code/audio-capture/dist/index.d.ts +0 -35
- package/node_modules/@qwen-code/audio-capture/dist/index.js +0 -48
- package/node_modules/@qwen-code/audio-capture/dist/index.js.map +0 -1
- package/node_modules/@qwen-code/audio-capture/dist/platform.d.ts +0 -7
- package/node_modules/@qwen-code/audio-capture/dist/platform.js +0 -18
- package/node_modules/@qwen-code/audio-capture/dist/platform.js.map +0 -1
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/LICENSE +0 -21
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/README.md +0 -58
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/SECURITY.md +0 -5
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/bin.js +0 -84
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/build-test.js +0 -19
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/index.js +0 -6
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/node-gyp-build.js +0 -207
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/optional.js +0 -7
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/package.json +0 -43
- package/node_modules/@qwen-code/audio-capture/package.json +0 -30
- package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/linux-arm64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/linux-x64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
- package/web-shell/assets/channel-wmPUGHtg.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-BA2ljEjW.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BA2ljEjW.js +0 -1
- package/web-shell/assets/index-CNwoO1Cn.js +0 -783
- package/web-shell/assets/index-CWQ0z6kZ.css +0 -5
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BbSm_9d0.js +0 -1
|
@@ -7,21 +7,31 @@ import {
|
|
|
7
7
|
QWEN_DAEMON_URL_ENV,
|
|
8
8
|
QWEN_DAEMON_WORKSPACE_ENV,
|
|
9
9
|
QWEN_SERVER_TOKEN_ENV
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-GYTKQYDB.js";
|
|
11
11
|
import {
|
|
12
12
|
channelSelectionNames
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
import {
|
|
15
|
-
sanitizeLogText
|
|
16
|
-
} from "./chunk-IBY3Q3HG.js";
|
|
17
|
-
import "./chunk-VRDMOSQS.js";
|
|
13
|
+
} from "./chunk-TJTKSVIV.js";
|
|
18
14
|
import {
|
|
19
15
|
redactLogCredentials
|
|
20
|
-
} from "./chunk-
|
|
21
|
-
import
|
|
16
|
+
} from "./chunk-M5GB774H.js";
|
|
17
|
+
import {
|
|
18
|
+
CHANNEL_WORKER_KILL_GRACE_MS,
|
|
19
|
+
CHANNEL_WORKER_STARTUP_TIMEOUT_MS,
|
|
20
|
+
CHANNEL_WORKER_STOP_GRACE_MS
|
|
21
|
+
} from "./chunk-5HBA2Z7V.js";
|
|
22
|
+
import {
|
|
23
|
+
CHANNEL_WEBHOOK_TASK_IPC_TIMEOUT_MS,
|
|
24
|
+
ChannelWebhookEnqueueError,
|
|
25
|
+
createChannelWebhookTaskMessage,
|
|
26
|
+
isChannelWebhookEnqueueErrorCode,
|
|
27
|
+
isChannelWebhookTaskResultMessage
|
|
28
|
+
} from "./chunk-OJAMDVF5.js";
|
|
29
|
+
import {
|
|
30
|
+
sanitizeLogText
|
|
31
|
+
} from "./chunk-AU4R7ACM.js";
|
|
22
32
|
import {
|
|
23
33
|
init_esbuild_shims
|
|
24
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-5O2XNYP6.js";
|
|
25
35
|
import {
|
|
26
36
|
__name
|
|
27
37
|
} from "./chunk-J2S4EL5Y.js";
|
|
@@ -30,7 +40,6 @@ import {
|
|
|
30
40
|
init_esbuild_shims();
|
|
31
41
|
import { fork } from "node:child_process";
|
|
32
42
|
import { randomUUID } from "node:crypto";
|
|
33
|
-
var DEFAULT_CHANNEL_WORKER_STARTUP_TIMEOUT_MS = 3e4;
|
|
34
43
|
var DEFAULT_CHANNEL_WORKER_HEARTBEAT_TIMEOUT_MS = 45e3;
|
|
35
44
|
var MAX_WORKER_LOG_LINE_LENGTH = 4096;
|
|
36
45
|
var MAX_WORKER_LOG_BUFFER_LENGTH = 64 * 1024;
|
|
@@ -41,6 +50,15 @@ var ANSI_CSI_SEQUENCE_RE = new RegExp(
|
|
|
41
50
|
);
|
|
42
51
|
var WORKER_LOG_INVISIBLE_RE = new RegExp("[\\p{Cf}\\u2028\\u2029]|\\p{Variation_Selector}", "gu");
|
|
43
52
|
var WORKER_LOG_CONTROL_RE = /[\x00-\x08\x0a-\x1f\x7f]/g;
|
|
53
|
+
var ChannelWorkerStopError = class extends Error {
|
|
54
|
+
static {
|
|
55
|
+
__name(this, "ChannelWorkerStopError");
|
|
56
|
+
}
|
|
57
|
+
constructor(message = "Channel worker did not exit after SIGKILL.") {
|
|
58
|
+
super(message);
|
|
59
|
+
this.name = "ChannelWorkerStopError";
|
|
60
|
+
}
|
|
61
|
+
};
|
|
44
62
|
var DEFAULT_RESTART_POLICY = {
|
|
45
63
|
maxRestarts: 3,
|
|
46
64
|
windowMs: 5 * 6e4,
|
|
@@ -112,15 +130,17 @@ __name(notifyLog, "notifyLog");
|
|
|
112
130
|
function waitForExit(child, timeoutMs) {
|
|
113
131
|
return new Promise((resolve) => {
|
|
114
132
|
let settled = false;
|
|
133
|
+
const onExit = /* @__PURE__ */ __name(() => done(true), "onExit");
|
|
115
134
|
const done = /* @__PURE__ */ __name((exited) => {
|
|
116
135
|
if (settled) return;
|
|
117
136
|
settled = true;
|
|
118
|
-
|
|
137
|
+
clearTimeout(timer);
|
|
138
|
+
child.removeListener("exit", onExit);
|
|
119
139
|
resolve(exited);
|
|
120
140
|
}, "done");
|
|
121
141
|
const timer = setTimeout(() => done(false), timeoutMs);
|
|
122
142
|
timer.unref();
|
|
123
|
-
child.once("exit",
|
|
143
|
+
child.once("exit", onExit);
|
|
124
144
|
});
|
|
125
145
|
}
|
|
126
146
|
__name(waitForExit, "waitForExit");
|
|
@@ -129,7 +149,7 @@ function hasObservedExit(snapshot) {
|
|
|
129
149
|
}
|
|
130
150
|
__name(hasObservedExit, "hasObservedExit");
|
|
131
151
|
function createWorkerEnv(opts) {
|
|
132
|
-
const env = { ...process.env };
|
|
152
|
+
const env = { ...opts.baseEnv ?? process.env };
|
|
133
153
|
env["QWEN_CODE_NO_RELAUNCH"] = "true";
|
|
134
154
|
env[CHANNEL_DAEMON_WORKER_SENTINEL] = randomUUID();
|
|
135
155
|
env[QWEN_DAEMON_URL_ENV] = opts.daemonUrl;
|
|
@@ -268,6 +288,9 @@ function createChannelWorkerSupervisor(opts) {
|
|
|
268
288
|
let restartTimer;
|
|
269
289
|
let staleHeartbeatTimer;
|
|
270
290
|
let restartAttemptTimes = [];
|
|
291
|
+
const pendingWebhookTasks = /* @__PURE__ */ new Map();
|
|
292
|
+
let restarting;
|
|
293
|
+
let disposed = false;
|
|
271
294
|
const snapshotCopy = /* @__PURE__ */ __name(() => ({
|
|
272
295
|
...snapshot,
|
|
273
296
|
channels: [...snapshot.channels],
|
|
@@ -289,6 +312,40 @@ function createChannelWorkerSupervisor(opts) {
|
|
|
289
312
|
clearTimeout(staleHeartbeatTimer);
|
|
290
313
|
staleHeartbeatTimer = void 0;
|
|
291
314
|
}, "clearStaleHeartbeatTimer");
|
|
315
|
+
const rejectPendingWebhookTasks = /* @__PURE__ */ __name((code, message) => {
|
|
316
|
+
for (const pending of pendingWebhookTasks.values()) {
|
|
317
|
+
clearTimeout(pending.timer);
|
|
318
|
+
pending.reject(new ChannelWebhookEnqueueError(code, message));
|
|
319
|
+
}
|
|
320
|
+
pendingWebhookTasks.clear();
|
|
321
|
+
}, "rejectPendingWebhookTasks");
|
|
322
|
+
const rejectPendingWebhookTask = /* @__PURE__ */ __name((id, err) => {
|
|
323
|
+
const pending = pendingWebhookTasks.get(id);
|
|
324
|
+
if (!pending) return;
|
|
325
|
+
pendingWebhookTasks.delete(id);
|
|
326
|
+
clearTimeout(pending.timer);
|
|
327
|
+
pending.reject(err);
|
|
328
|
+
}, "rejectPendingWebhookTask");
|
|
329
|
+
const settleWebhookTask = /* @__PURE__ */ __name((message) => {
|
|
330
|
+
if (!isChannelWebhookTaskResultMessage(message)) return false;
|
|
331
|
+
const pending = pendingWebhookTasks.get(message.id);
|
|
332
|
+
if (!pending) return true;
|
|
333
|
+
if (message.ok) {
|
|
334
|
+
pendingWebhookTasks.delete(message.id);
|
|
335
|
+
clearTimeout(pending.timer);
|
|
336
|
+
pending.resolve({ accepted: true });
|
|
337
|
+
} else {
|
|
338
|
+
const code = isChannelWebhookEnqueueErrorCode(message.code) ? message.code : "channel_webhook_enqueue_failed";
|
|
339
|
+
rejectPendingWebhookTask(
|
|
340
|
+
message.id,
|
|
341
|
+
new ChannelWebhookEnqueueError(
|
|
342
|
+
code,
|
|
343
|
+
message.error || "Channel webhook task failed."
|
|
344
|
+
)
|
|
345
|
+
);
|
|
346
|
+
}
|
|
347
|
+
return true;
|
|
348
|
+
}, "settleWebhookTask");
|
|
292
349
|
const pruneRestartAttempts = /* @__PURE__ */ __name((nowMs) => {
|
|
293
350
|
restartAttemptTimes = restartAttemptTimes.filter(
|
|
294
351
|
(attemptMs) => nowMs - attemptMs < restartPolicy.windowMs
|
|
@@ -385,7 +442,8 @@ function createChannelWorkerSupervisor(opts) {
|
|
|
385
442
|
const env = createWorkerEnv({
|
|
386
443
|
daemonUrl: opts.daemonUrl,
|
|
387
444
|
workspace: opts.workspace,
|
|
388
|
-
...opts.daemonToken ? { daemonToken: opts.daemonToken } : {}
|
|
445
|
+
...opts.daemonToken ? { daemonToken: opts.daemonToken } : {},
|
|
446
|
+
...opts.workerBaseEnv ? { baseEnv: opts.workerBaseEnv } : {}
|
|
389
447
|
});
|
|
390
448
|
const redaction = workerLogRedactionOptions(opts.daemonToken, env);
|
|
391
449
|
const requestedChannels = requestedChannelNames(opts.selection);
|
|
@@ -464,18 +522,27 @@ function createChannelWorkerSupervisor(opts) {
|
|
|
464
522
|
cleanupLaunch();
|
|
465
523
|
if (terminatingBeforeReady) return;
|
|
466
524
|
terminatingBeforeReady = true;
|
|
467
|
-
const exited = waitForExit(startedChild,
|
|
525
|
+
const exited = waitForExit(startedChild, CHANNEL_WORKER_KILL_GRACE_MS);
|
|
468
526
|
startedChild.kill("SIGTERM");
|
|
469
527
|
void exited.then(async (didExit) => {
|
|
470
528
|
if (!didExit && child === startedChild && !exitObserved) {
|
|
471
|
-
const killed = waitForExit(
|
|
529
|
+
const killed = waitForExit(
|
|
530
|
+
startedChild,
|
|
531
|
+
CHANNEL_WORKER_KILL_GRACE_MS
|
|
532
|
+
);
|
|
472
533
|
startedChild.kill("SIGKILL");
|
|
473
534
|
if (!await killed && child === startedChild && !exitObserved) {
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
}
|
|
535
|
+
stopping = true;
|
|
536
|
+
notifyLog(opts.onLog, {
|
|
537
|
+
stream: "stderr",
|
|
538
|
+
line: "Channel worker did not exit after SIGKILL; automatic restart is disabled."
|
|
539
|
+
});
|
|
540
|
+
snapshot = {
|
|
541
|
+
...snapshot,
|
|
542
|
+
state: "failed",
|
|
543
|
+
error: snapshot.error ?? "Channel worker did not exit after SIGKILL."
|
|
544
|
+
};
|
|
545
|
+
notifyExit(opts.onExit, snapshotCopy());
|
|
479
546
|
}
|
|
480
547
|
}
|
|
481
548
|
});
|
|
@@ -527,6 +594,9 @@ function createChannelWorkerSupervisor(opts) {
|
|
|
527
594
|
}, "handleHeartbeat");
|
|
528
595
|
function handleMessage(message) {
|
|
529
596
|
if (child !== startedChild) return;
|
|
597
|
+
if (settleWebhookTask(message)) {
|
|
598
|
+
return;
|
|
599
|
+
}
|
|
530
600
|
if (!ready && isReadyMessage(message)) {
|
|
531
601
|
completeReady(message);
|
|
532
602
|
} else if (isHeartbeatMessage(message)) {
|
|
@@ -546,6 +616,10 @@ function createChannelWorkerSupervisor(opts) {
|
|
|
546
616
|
signal,
|
|
547
617
|
snapshot.error ?? (ready ? void 0 : sanitizeWorkerError(message, redaction))
|
|
548
618
|
);
|
|
619
|
+
rejectPendingWebhookTasks(
|
|
620
|
+
"channel_worker_unavailable",
|
|
621
|
+
"Channel worker exited."
|
|
622
|
+
);
|
|
549
623
|
child = void 0;
|
|
550
624
|
if ((ready || kind === "restart") && !stopping) {
|
|
551
625
|
scheduleRestart();
|
|
@@ -578,7 +652,7 @@ function createChannelWorkerSupervisor(opts) {
|
|
|
578
652
|
}
|
|
579
653
|
__name(settleError, "settleError");
|
|
580
654
|
startupTimer = setTimeout(() => {
|
|
581
|
-
const timeoutMs = opts.startupTimeoutMs ??
|
|
655
|
+
const timeoutMs = opts.startupTimeoutMs ?? CHANNEL_WORKER_STARTUP_TIMEOUT_MS;
|
|
582
656
|
const error = `Channel worker did not become ready within ${timeoutMs}ms.`;
|
|
583
657
|
snapshot = {
|
|
584
658
|
...snapshot,
|
|
@@ -589,16 +663,24 @@ function createChannelWorkerSupervisor(opts) {
|
|
|
589
663
|
if (child === startedChild) {
|
|
590
664
|
terminateBeforeReady();
|
|
591
665
|
}
|
|
592
|
-
}, opts.startupTimeoutMs ??
|
|
666
|
+
}, opts.startupTimeoutMs ?? CHANNEL_WORKER_STARTUP_TIMEOUT_MS);
|
|
593
667
|
startupTimer.unref();
|
|
594
668
|
startedChild.on("message", handleMessage);
|
|
595
669
|
startedChild.once("exit", settleExit);
|
|
596
670
|
startedChild.once("error", settleError);
|
|
597
671
|
});
|
|
598
672
|
}, "launch");
|
|
599
|
-
|
|
673
|
+
const supervisor = {
|
|
600
674
|
async start() {
|
|
601
|
-
if (
|
|
675
|
+
if (disposed) return;
|
|
676
|
+
if (child) {
|
|
677
|
+
if (stopping) {
|
|
678
|
+
throw new ChannelWorkerStopError(
|
|
679
|
+
"Channel worker stop is not yet confirmed."
|
|
680
|
+
);
|
|
681
|
+
}
|
|
682
|
+
return;
|
|
683
|
+
}
|
|
602
684
|
stopping = false;
|
|
603
685
|
clearRestartTimer();
|
|
604
686
|
restartAttemptTimes = [];
|
|
@@ -607,34 +689,54 @@ function createChannelWorkerSupervisor(opts) {
|
|
|
607
689
|
async stop() {
|
|
608
690
|
clearRestartTimer();
|
|
609
691
|
clearStaleHeartbeatTimer();
|
|
692
|
+
rejectPendingWebhookTasks(
|
|
693
|
+
"channel_worker_unavailable",
|
|
694
|
+
"Channel worker stopped."
|
|
695
|
+
);
|
|
610
696
|
if (!child || snapshot.state === "exited" || snapshot.state === "failed" && hasObservedExit(snapshot) || snapshot.state === "stopped") {
|
|
611
697
|
child = void 0;
|
|
612
698
|
snapshot = { ...snapshot, state: "stopped" };
|
|
613
699
|
return;
|
|
614
700
|
}
|
|
615
|
-
const
|
|
701
|
+
const stoppingChild = child;
|
|
702
|
+
const exited = waitForExit(stoppingChild, CHANNEL_WORKER_STOP_GRACE_MS);
|
|
616
703
|
stopping = true;
|
|
617
|
-
|
|
618
|
-
if (!await exited) {
|
|
619
|
-
const killed = waitForExit(
|
|
620
|
-
|
|
704
|
+
stoppingChild.kill("SIGTERM");
|
|
705
|
+
if (!await exited && child === stoppingChild) {
|
|
706
|
+
const killed = waitForExit(stoppingChild, CHANNEL_WORKER_KILL_GRACE_MS);
|
|
707
|
+
stoppingChild.kill("SIGKILL");
|
|
621
708
|
if (!await killed) {
|
|
622
|
-
child = void 0;
|
|
623
|
-
stopping = false;
|
|
624
709
|
snapshot = {
|
|
625
710
|
...snapshot,
|
|
626
711
|
state: "failed",
|
|
627
|
-
signal: "SIGKILL",
|
|
628
712
|
error: "Channel worker did not exit after SIGKILL."
|
|
629
713
|
};
|
|
630
|
-
|
|
714
|
+
throw new ChannelWorkerStopError();
|
|
631
715
|
}
|
|
632
716
|
}
|
|
633
717
|
child = void 0;
|
|
634
718
|
stopping = false;
|
|
635
719
|
snapshot = { ...snapshot, state: "stopped" };
|
|
636
720
|
},
|
|
721
|
+
async restart() {
|
|
722
|
+
if (disposed) return snapshotCopy();
|
|
723
|
+
restarting ??= (async () => {
|
|
724
|
+
try {
|
|
725
|
+
await supervisor.stop();
|
|
726
|
+
await supervisor.start();
|
|
727
|
+
return snapshotCopy();
|
|
728
|
+
} finally {
|
|
729
|
+
restarting = void 0;
|
|
730
|
+
}
|
|
731
|
+
})();
|
|
732
|
+
return restarting;
|
|
733
|
+
},
|
|
637
734
|
killAllSync() {
|
|
735
|
+
disposed = true;
|
|
736
|
+
rejectPendingWebhookTasks(
|
|
737
|
+
"channel_worker_unavailable",
|
|
738
|
+
"Channel worker stopped."
|
|
739
|
+
);
|
|
638
740
|
if (!child || snapshot.state === "exited" || snapshot.state === "failed" && hasObservedExit(snapshot) || snapshot.state === "stopped") {
|
|
639
741
|
clearRestartTimer();
|
|
640
742
|
clearStaleHeartbeatTimer();
|
|
@@ -656,10 +758,64 @@ function createChannelWorkerSupervisor(opts) {
|
|
|
656
758
|
},
|
|
657
759
|
snapshot() {
|
|
658
760
|
return snapshotCopy();
|
|
761
|
+
},
|
|
762
|
+
async enqueueWebhookTask(task) {
|
|
763
|
+
const startedChild = child;
|
|
764
|
+
if (!startedChild || snapshot.state !== "running") {
|
|
765
|
+
throw new ChannelWebhookEnqueueError(
|
|
766
|
+
"channel_worker_unavailable",
|
|
767
|
+
"Channel worker is not running."
|
|
768
|
+
);
|
|
769
|
+
}
|
|
770
|
+
const send = startedChild.send;
|
|
771
|
+
if (!send) {
|
|
772
|
+
throw new ChannelWebhookEnqueueError(
|
|
773
|
+
"channel_worker_unavailable",
|
|
774
|
+
"Channel worker IPC send failed."
|
|
775
|
+
);
|
|
776
|
+
}
|
|
777
|
+
const message = createChannelWebhookTaskMessage(task);
|
|
778
|
+
return await new Promise((resolve, reject) => {
|
|
779
|
+
const timer = setTimeout(() => {
|
|
780
|
+
pendingWebhookTasks.delete(message.id);
|
|
781
|
+
reject(
|
|
782
|
+
new ChannelWebhookEnqueueError(
|
|
783
|
+
"channel_webhook_enqueue_timeout",
|
|
784
|
+
"Channel webhook task IPC timed out."
|
|
785
|
+
)
|
|
786
|
+
);
|
|
787
|
+
}, CHANNEL_WEBHOOK_TASK_IPC_TIMEOUT_MS);
|
|
788
|
+
timer.unref();
|
|
789
|
+
pendingWebhookTasks.set(message.id, { resolve, reject, timer });
|
|
790
|
+
try {
|
|
791
|
+
send.call(startedChild, message, (err) => {
|
|
792
|
+
if (err) {
|
|
793
|
+
rejectPendingWebhookTask(
|
|
794
|
+
message.id,
|
|
795
|
+
new ChannelWebhookEnqueueError(
|
|
796
|
+
"channel_worker_unavailable",
|
|
797
|
+
`Channel worker IPC send failed: ${err.message}`
|
|
798
|
+
)
|
|
799
|
+
);
|
|
800
|
+
}
|
|
801
|
+
});
|
|
802
|
+
} catch (err) {
|
|
803
|
+
rejectPendingWebhookTask(
|
|
804
|
+
message.id,
|
|
805
|
+
new ChannelWebhookEnqueueError(
|
|
806
|
+
"channel_worker_unavailable",
|
|
807
|
+
`Channel worker IPC send failed: ${err instanceof Error ? err.message : String(err)}`
|
|
808
|
+
)
|
|
809
|
+
);
|
|
810
|
+
}
|
|
811
|
+
});
|
|
659
812
|
}
|
|
660
813
|
};
|
|
814
|
+
return supervisor;
|
|
661
815
|
}
|
|
662
816
|
__name(createChannelWorkerSupervisor, "createChannelWorkerSupervisor");
|
|
817
|
+
|
|
663
818
|
export {
|
|
819
|
+
ChannelWorkerStopError,
|
|
664
820
|
createChannelWorkerSupervisor
|
|
665
821
|
};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
init_esbuild_shims
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-5O2XNYP6.js";
|
|
6
6
|
import {
|
|
7
7
|
__name
|
|
8
8
|
} from "./chunk-J2S4EL5Y.js";
|
|
@@ -12,6 +12,17 @@ init_esbuild_shims();
|
|
|
12
12
|
var DEFAULT_TOKEN_LIMIT = 2e5;
|
|
13
13
|
var DEFAULT_OUTPUT_TOKEN_LIMIT = 32e3;
|
|
14
14
|
var ESCALATED_MAX_TOKENS = 64e3;
|
|
15
|
+
var OUTPUT_TOKEN_CEILING = ESCALATED_MAX_TOKENS;
|
|
16
|
+
var MIN_CLAMPED_OUTPUT_TOKENS = 4e3;
|
|
17
|
+
function outputClampMargin(contextWindowSize) {
|
|
18
|
+
return Math.max(1e4, Math.round(0.05 * contextWindowSize));
|
|
19
|
+
}
|
|
20
|
+
__name(outputClampMargin, "outputClampMargin");
|
|
21
|
+
function clampOutputTokensToWindow(outputCeiling, contextWindowSize, promptTokens) {
|
|
22
|
+
const room = contextWindowSize - promptTokens - outputClampMargin(contextWindowSize);
|
|
23
|
+
return Math.min(outputCeiling, Math.max(MIN_CLAMPED_OUTPUT_TOKENS, room));
|
|
24
|
+
}
|
|
25
|
+
__name(clampOutputTokensToWindow, "clampOutputTokensToWindow");
|
|
15
26
|
function parsePositiveIntegerEnvValue(raw) {
|
|
16
27
|
if (raw === void 0) return void 0;
|
|
17
28
|
const trimmed = raw.trim();
|
|
@@ -80,6 +91,8 @@ var PATTERNS = [
|
|
|
80
91
|
// -------------------
|
|
81
92
|
// Anthropic Claude
|
|
82
93
|
// -------------------
|
|
94
|
+
[/^claude-opus-4-(?:6|7|8)/, LIMITS["1m"]],
|
|
95
|
+
// Opus 4.6-4.8: 1M
|
|
83
96
|
[/^claude-/, LIMITS["200k"]],
|
|
84
97
|
// All Claude models: 200K
|
|
85
98
|
// -------------------
|
|
@@ -96,7 +109,7 @@ var PATTERNS = [
|
|
|
96
109
|
[/^qwen3-max/, LIMITS["256k"]],
|
|
97
110
|
// Open-source Qwen3 variants: 256K native
|
|
98
111
|
[/^qwen3-coder-/, LIMITS["256k"]],
|
|
99
|
-
// Qwen fallback (VL, turbo, plus, 2.5, etc.):
|
|
112
|
+
// Qwen fallback (VL, turbo, plus, 2.5, etc.): 256K
|
|
100
113
|
[/^qwen/, LIMITS["256k"]],
|
|
101
114
|
// -------------------
|
|
102
115
|
// DeepSeek
|
|
@@ -149,8 +162,8 @@ var OUTPUT_PATTERNS = [
|
|
|
149
162
|
[/^o\d/, LIMITS["128k"]],
|
|
150
163
|
// o-series: 128K
|
|
151
164
|
// Anthropic Claude
|
|
152
|
-
[/^claude-opus-4-6/,
|
|
153
|
-
// Opus 4.6: 128K
|
|
165
|
+
[/^claude-opus-4-(?:6|7|8)/, 128e3],
|
|
166
|
+
// Opus 4.6-4.8: 128K
|
|
154
167
|
[/^claude-sonnet-4-6/, LIMITS["64k"]],
|
|
155
168
|
// Sonnet 4.6: 64K
|
|
156
169
|
[/^claude-/, LIMITS["64k"]],
|
|
@@ -190,12 +203,6 @@ function hasExplicitOutputLimit(model) {
|
|
|
190
203
|
return OUTPUT_PATTERNS.some(([regex]) => regex.test(norm));
|
|
191
204
|
}
|
|
192
205
|
__name(hasExplicitOutputLimit, "hasExplicitOutputLimit");
|
|
193
|
-
function escalatedOutputTokenLimit(model, contextWindowSize) {
|
|
194
|
-
const escalated = Math.max(ESCALATED_MAX_TOKENS, tokenLimit(model, "output"));
|
|
195
|
-
const window = contextWindowSize !== void 0 && contextWindowSize > 0 ? contextWindowSize : DEFAULT_TOKEN_LIMIT;
|
|
196
|
-
return Math.min(escalated, Math.floor(window / 2));
|
|
197
|
-
}
|
|
198
|
-
__name(escalatedOutputTokenLimit, "escalatedOutputTokenLimit");
|
|
199
206
|
function knownTokenLimit(model, type = "input") {
|
|
200
207
|
return findTokenLimit(model, type);
|
|
201
208
|
}
|
|
@@ -204,6 +211,21 @@ function tokenLimit(model, type = "input") {
|
|
|
204
211
|
return knownTokenLimit(model, type) ?? (type === "output" ? DEFAULT_OUTPUT_TOKEN_LIMIT : DEFAULT_TOKEN_LIMIT);
|
|
205
212
|
}
|
|
206
213
|
__name(tokenLimit, "tokenLimit");
|
|
214
|
+
function defaultOutputCeiling(model) {
|
|
215
|
+
const outputLimit = tokenLimit(model, "output");
|
|
216
|
+
if (/^claude-opus-4-(?:6|7|8)/.test(normalize(model))) {
|
|
217
|
+
return outputLimit;
|
|
218
|
+
}
|
|
219
|
+
return Math.min(outputLimit, OUTPUT_TOKEN_CEILING);
|
|
220
|
+
}
|
|
221
|
+
__name(defaultOutputCeiling, "defaultOutputCeiling");
|
|
222
|
+
function reconcileMaxTokens(configMaxTokens, requestMaxTokens) {
|
|
223
|
+
if (typeof configMaxTokens === "number" && typeof requestMaxTokens === "number") {
|
|
224
|
+
return Math.min(configMaxTokens, requestMaxTokens);
|
|
225
|
+
}
|
|
226
|
+
return void 0;
|
|
227
|
+
}
|
|
228
|
+
__name(reconcileMaxTokens, "reconcileMaxTokens");
|
|
207
229
|
|
|
208
230
|
// packages/core/src/core/openaiContentGenerator/constants.ts
|
|
209
231
|
init_esbuild_shims();
|
|
@@ -258,12 +280,17 @@ export {
|
|
|
258
280
|
DEFAULT_TOKEN_LIMIT,
|
|
259
281
|
DEFAULT_OUTPUT_TOKEN_LIMIT,
|
|
260
282
|
ESCALATED_MAX_TOKENS,
|
|
283
|
+
OUTPUT_TOKEN_CEILING,
|
|
284
|
+
MIN_CLAMPED_OUTPUT_TOKENS,
|
|
285
|
+
outputClampMargin,
|
|
286
|
+
clampOutputTokensToWindow,
|
|
261
287
|
parsePositiveIntegerEnvValue,
|
|
262
288
|
normalize,
|
|
263
289
|
hasExplicitOutputLimit,
|
|
264
|
-
escalatedOutputTokenLimit,
|
|
265
290
|
knownTokenLimit,
|
|
266
291
|
tokenLimit,
|
|
292
|
+
defaultOutputCeiling,
|
|
293
|
+
reconcileMaxTokens,
|
|
267
294
|
resolveRequestTimeout,
|
|
268
295
|
DEFAULT_STREAM_IDLE_TIMEOUT_MS,
|
|
269
296
|
QWEN_STREAM_IDLE_TIMEOUT_MS_ENV,
|
|
@@ -4,10 +4,10 @@ import {
|
|
|
4
4
|
matches,
|
|
5
5
|
nextFireTime,
|
|
6
6
|
parseCron
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-XU457J4V.js";
|
|
8
8
|
import {
|
|
9
9
|
humanReadableCron
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-VDDGDZMA.js";
|
|
11
11
|
import {
|
|
12
12
|
CRON_TASKS_DISPLAY_PATH,
|
|
13
13
|
addCronTask,
|
|
@@ -16,19 +16,21 @@ import {
|
|
|
16
16
|
getCronFilePath,
|
|
17
17
|
readCronTasks,
|
|
18
18
|
removeCronTasks,
|
|
19
|
+
taskHasLegacyCondition,
|
|
20
|
+
taskHasLegacyRunMode,
|
|
19
21
|
updateCronTasks
|
|
20
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-SPJQO2CE.js";
|
|
21
23
|
import {
|
|
22
24
|
ToolNames
|
|
23
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-JGUT3LWZ.js";
|
|
24
26
|
import {
|
|
25
27
|
Storage,
|
|
26
28
|
createDebugLogger,
|
|
27
29
|
getProjectHash
|
|
28
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-7NFB7LBQ.js";
|
|
29
31
|
import {
|
|
30
32
|
init_esbuild_shims
|
|
31
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-5O2XNYP6.js";
|
|
32
34
|
import {
|
|
33
35
|
__name
|
|
34
36
|
} from "./chunk-J2S4EL5Y.js";
|
|
@@ -283,6 +285,13 @@ var CronScheduler = class {
|
|
|
283
285
|
// the live job away (or clear its pendingRemoval guard) as if it had
|
|
284
286
|
// been deleted on disk.
|
|
285
287
|
pendingAdd = /* @__PURE__ */ new Set();
|
|
288
|
+
// Ids of legacy tasks (a pre-removal `isolated` task with a `condition`
|
|
289
|
+
// precondition) already reported as skipped, so the fail-closed remediation
|
|
290
|
+
// breadcrumb is logged once per task rather than on every file reload.
|
|
291
|
+
warnedLegacyConditionIds = /* @__PURE__ */ new Set();
|
|
292
|
+
// Ids of bare `runMode: 'isolated'` legacy tasks already warned about — they
|
|
293
|
+
// still run (no safety gate), so this is a one-time behavior-change notice.
|
|
294
|
+
warnedLegacyRunModeIds = /* @__PURE__ */ new Set();
|
|
286
295
|
// Durable ids whose lastFiredAt persist is in flight after a fire — the tick
|
|
287
296
|
// (on-time) OR a catch-up delivery. A reload racing that async write reads the
|
|
288
297
|
// stale disk stamp, so it must not re-detect and re-fire the same slot. Only
|
|
@@ -597,9 +606,25 @@ var CronScheduler = class {
|
|
|
597
606
|
if (generation !== this.durableGeneration) {
|
|
598
607
|
return;
|
|
599
608
|
}
|
|
600
|
-
const tasks = read.filter(
|
|
601
|
-
(
|
|
602
|
-
|
|
609
|
+
const tasks = read.filter((t) => {
|
|
610
|
+
if (!hasParseableCron(t) || t.enabled === false) return false;
|
|
611
|
+
if (taskHasLegacyCondition(t)) {
|
|
612
|
+
if (!this.warnedLegacyConditionIds.has(t.id)) {
|
|
613
|
+
this.warnedLegacyConditionIds.add(t.id);
|
|
614
|
+
console.warn(
|
|
615
|
+
`CronScheduler: scheduled task ${t.id} carries a legacy precondition (isolated run mode was removed) and will NOT fire \u2014 recreate it if you still want it to run.`
|
|
616
|
+
);
|
|
617
|
+
}
|
|
618
|
+
return false;
|
|
619
|
+
}
|
|
620
|
+
if (taskHasLegacyRunMode(t) && !this.warnedLegacyRunModeIds.has(t.id)) {
|
|
621
|
+
this.warnedLegacyRunModeIds.add(t.id);
|
|
622
|
+
console.warn(
|
|
623
|
+
`CronScheduler: scheduled task ${t.id} was created with the removed 'isolated' run mode; it now runs in its bound session (history accumulates across runs). Recreate it and call create_sub_session from the prompt for per-run isolation.`
|
|
624
|
+
);
|
|
625
|
+
}
|
|
626
|
+
return true;
|
|
627
|
+
});
|
|
603
628
|
const now = Date.now();
|
|
604
629
|
const missedOneShots = [];
|
|
605
630
|
const catchUpIds = [];
|
|
@@ -713,8 +738,12 @@ var CronScheduler = class {
|
|
|
713
738
|
});
|
|
714
739
|
for (const id of skipped) this.pendingRemoval.delete(id);
|
|
715
740
|
if (runnable.length > 0) {
|
|
741
|
+
const carrier = durableTaskToJob(
|
|
742
|
+
runnable[0],
|
|
743
|
+
this.recurringMaxAgeMs
|
|
744
|
+
);
|
|
716
745
|
onFire({
|
|
717
|
-
...
|
|
746
|
+
...carrier,
|
|
718
747
|
prompt: buildMissedCronNotification(runnable),
|
|
719
748
|
missed: true
|
|
720
749
|
});
|