@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
|
@@ -2,17 +2,17 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
Mutex
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-VGC4I5JJ.js";
|
|
6
6
|
import {
|
|
7
7
|
atomicWriteJSON
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-WIEO4CWB.js";
|
|
9
9
|
import {
|
|
10
10
|
Storage,
|
|
11
11
|
getProjectHash
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-7NFB7LBQ.js";
|
|
13
13
|
import {
|
|
14
14
|
init_esbuild_shims
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-5O2XNYP6.js";
|
|
16
16
|
import {
|
|
17
17
|
__name
|
|
18
18
|
} from "./chunk-J2S4EL5Y.js";
|
|
@@ -28,6 +28,15 @@ function appendCronRun(runs, entry) {
|
|
|
28
28
|
return next.length > MAX_TASK_RUNS ? next.slice(next.length - MAX_TASK_RUNS) : next;
|
|
29
29
|
}
|
|
30
30
|
__name(appendCronRun, "appendCronRun");
|
|
31
|
+
function taskHasLegacyCondition(task) {
|
|
32
|
+
const condition = task["condition"];
|
|
33
|
+
return typeof condition === "string" && condition.length > 0;
|
|
34
|
+
}
|
|
35
|
+
__name(taskHasLegacyCondition, "taskHasLegacyCondition");
|
|
36
|
+
function taskHasLegacyRunMode(task) {
|
|
37
|
+
return task["runMode"] === "isolated";
|
|
38
|
+
}
|
|
39
|
+
__name(taskHasLegacyRunMode, "taskHasLegacyRunMode");
|
|
31
40
|
function generateCronTaskId() {
|
|
32
41
|
const chars = "abcdefghijklmnopqrstuvwxyz0123456789";
|
|
33
42
|
let id = "";
|
|
@@ -185,7 +194,9 @@ function isValidRuns(value) {
|
|
|
185
194
|
return value.every((entry) => {
|
|
186
195
|
if (typeof entry !== "object" || entry === null) return false;
|
|
187
196
|
const run = entry;
|
|
188
|
-
return isFiniteTimestamp(run["at"]) && (run["kind"] === void 0 || typeof run["kind"] === "string") && (run["sessionId"] === void 0 || typeof run["sessionId"] === "string")
|
|
197
|
+
return isFiniteTimestamp(run["at"]) && (run["kind"] === void 0 || typeof run["kind"] === "string") && (run["sessionId"] === void 0 || typeof run["sessionId"] === "string") && // Read-only legacy compat: validate so a stored `withheld` marker isn't
|
|
198
|
+
// rejected on read (it is never written anymore).
|
|
199
|
+
(run["withheld"] === void 0 || typeof run["withheld"] === "boolean");
|
|
189
200
|
});
|
|
190
201
|
}
|
|
191
202
|
__name(isValidRuns, "isValidRuns");
|
|
@@ -206,6 +217,8 @@ __name(isValidTask, "isValidTask");
|
|
|
206
217
|
export {
|
|
207
218
|
MAX_TASK_RUNS,
|
|
208
219
|
appendCronRun,
|
|
220
|
+
taskHasLegacyCondition,
|
|
221
|
+
taskHasLegacyRunMode,
|
|
209
222
|
generateCronTaskId,
|
|
210
223
|
CRON_TASKS_DISPLAY_PATH,
|
|
211
224
|
getCronFilePath,
|
|
@@ -2,30 +2,31 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
createDebugLogger
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-7NFB7LBQ.js";
|
|
6
6
|
import {
|
|
7
7
|
init_esbuild_shims
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-5O2XNYP6.js";
|
|
9
9
|
import {
|
|
10
10
|
__name
|
|
11
11
|
} from "./chunk-J2S4EL5Y.js";
|
|
12
12
|
|
|
13
13
|
// packages/core/src/utils/request-tokenizer/textTokenizer.ts
|
|
14
14
|
init_esbuild_shims();
|
|
15
|
+
var NON_ASCII_RE = /[\u0080-\uffff]/;
|
|
15
16
|
function estimateTextTokens(text) {
|
|
16
17
|
if (!text || text.length === 0) {
|
|
17
18
|
return 0;
|
|
18
19
|
}
|
|
19
|
-
|
|
20
|
+
if (!NON_ASCII_RE.test(text)) {
|
|
21
|
+
return Math.ceil(text.length / 4);
|
|
22
|
+
}
|
|
20
23
|
let nonAsciiChars = 0;
|
|
21
24
|
for (let i = 0; i < text.length; i++) {
|
|
22
|
-
|
|
23
|
-
if (charCode < 128) {
|
|
24
|
-
asciiChars++;
|
|
25
|
-
} else {
|
|
25
|
+
if (text.charCodeAt(i) >= 128) {
|
|
26
26
|
nonAsciiChars++;
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
+
const asciiChars = text.length - nonAsciiChars;
|
|
29
30
|
const tokens = asciiChars / 4 + nonAsciiChars * 1.1;
|
|
30
31
|
return Math.ceil(tokens);
|
|
31
32
|
}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
// Force strict mode and setup for ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
INBOXES_DIR,
|
|
5
|
+
LEADER_NAME,
|
|
6
|
+
TASKS_DIR,
|
|
7
|
+
TEAMMATE_COLORS,
|
|
8
|
+
TEAMS_DIR,
|
|
9
|
+
TEAM_CONFIG_FILENAME
|
|
10
|
+
} from "./chunk-CPBF7KYF.js";
|
|
11
|
+
import {
|
|
12
|
+
atomicWriteJSON
|
|
13
|
+
} from "./chunk-WIEO4CWB.js";
|
|
14
|
+
import {
|
|
15
|
+
Storage,
|
|
16
|
+
isNodeError
|
|
17
|
+
} from "./chunk-7NFB7LBQ.js";
|
|
18
|
+
import {
|
|
19
|
+
init_esbuild_shims
|
|
20
|
+
} from "./chunk-5O2XNYP6.js";
|
|
21
|
+
import {
|
|
22
|
+
__name
|
|
23
|
+
} from "./chunk-J2S4EL5Y.js";
|
|
24
|
+
|
|
25
|
+
// packages/core/src/agents/team/teamHelpers.ts
|
|
26
|
+
init_esbuild_shims();
|
|
27
|
+
import * as fs from "node:fs/promises";
|
|
28
|
+
import * as path from "node:path";
|
|
29
|
+
function getTeamsRootDir() {
|
|
30
|
+
return path.join(Storage.getGlobalQwenDir(), TEAMS_DIR);
|
|
31
|
+
}
|
|
32
|
+
__name(getTeamsRootDir, "getTeamsRootDir");
|
|
33
|
+
function getTeamDir(teamName) {
|
|
34
|
+
return path.join(getTeamsRootDir(), teamName);
|
|
35
|
+
}
|
|
36
|
+
__name(getTeamDir, "getTeamDir");
|
|
37
|
+
function getTeamFilePath(teamName) {
|
|
38
|
+
return path.join(getTeamDir(teamName), TEAM_CONFIG_FILENAME);
|
|
39
|
+
}
|
|
40
|
+
__name(getTeamFilePath, "getTeamFilePath");
|
|
41
|
+
function getInboxesDir(teamName) {
|
|
42
|
+
return path.join(getTeamDir(teamName), INBOXES_DIR);
|
|
43
|
+
}
|
|
44
|
+
__name(getInboxesDir, "getInboxesDir");
|
|
45
|
+
function getTasksDir(teamName) {
|
|
46
|
+
return path.join(Storage.getGlobalQwenDir(), TASKS_DIR, teamName);
|
|
47
|
+
}
|
|
48
|
+
__name(getTasksDir, "getTasksDir");
|
|
49
|
+
function sanitizeName(name) {
|
|
50
|
+
return name.toLowerCase().replace(/[^a-z0-9-]/g, "-").replace(/-+/g, "-").replace(/^-|-$/g, "");
|
|
51
|
+
}
|
|
52
|
+
__name(sanitizeName, "sanitizeName");
|
|
53
|
+
function formatAgentId(name, teamName) {
|
|
54
|
+
return `${sanitizeName(name)}@${sanitizeName(teamName)}`;
|
|
55
|
+
}
|
|
56
|
+
__name(formatAgentId, "formatAgentId");
|
|
57
|
+
function generateUniqueTeammateName(baseName, existingMembers) {
|
|
58
|
+
const sanitized = sanitizeName(baseName);
|
|
59
|
+
if (!sanitized) {
|
|
60
|
+
throw new Error(
|
|
61
|
+
`Teammate name "${baseName}" sanitizes to an empty string. Choose a name with at least one alphanumeric character.`
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
if (sanitized === LEADER_NAME) {
|
|
65
|
+
throw new Error(
|
|
66
|
+
`"${LEADER_NAME}" is reserved for the team leader. Choose a different teammate name.`
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
const existingNames = new Set(existingMembers.map((m) => m.name));
|
|
70
|
+
if (existingNames.has(sanitized)) {
|
|
71
|
+
const existingList = [...existingNames].join(", ") || "<none>";
|
|
72
|
+
throw new Error(
|
|
73
|
+
`A teammate named "${sanitized}" already exists in this team (existing: ${existingList}). Choose a different name.`
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
return sanitized;
|
|
77
|
+
}
|
|
78
|
+
__name(generateUniqueTeammateName, "generateUniqueTeammateName");
|
|
79
|
+
function assignTeammateColor(existingMembers) {
|
|
80
|
+
const usedColors = new Set(
|
|
81
|
+
existingMembers.map((m) => m.color).filter((c) => c !== void 0)
|
|
82
|
+
);
|
|
83
|
+
for (const color of TEAMMATE_COLORS) {
|
|
84
|
+
if (!usedColors.has(color)) {
|
|
85
|
+
return color;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return TEAMMATE_COLORS[existingMembers.length % TEAMMATE_COLORS.length];
|
|
89
|
+
}
|
|
90
|
+
__name(assignTeammateColor, "assignTeammateColor");
|
|
91
|
+
function clearTeammateColors(members) {
|
|
92
|
+
return members.map((m) => {
|
|
93
|
+
const { color: _, ...rest } = m;
|
|
94
|
+
return rest;
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
__name(clearTeammateColors, "clearTeammateColors");
|
|
98
|
+
function setMemberActive(members, agentId, isActive) {
|
|
99
|
+
return members.map((m) => m.agentId === agentId ? { ...m, isActive } : m);
|
|
100
|
+
}
|
|
101
|
+
__name(setMemberActive, "setMemberActive");
|
|
102
|
+
function findMemberById(members, agentId) {
|
|
103
|
+
return members.find((m) => m.agentId === agentId);
|
|
104
|
+
}
|
|
105
|
+
__name(findMemberById, "findMemberById");
|
|
106
|
+
function findMemberByName(members, name) {
|
|
107
|
+
const sanitized = sanitizeName(name);
|
|
108
|
+
return members.find((m) => m.name === sanitized);
|
|
109
|
+
}
|
|
110
|
+
__name(findMemberByName, "findMemberByName");
|
|
111
|
+
function classifyShutdownResponse(message) {
|
|
112
|
+
const trimmed = message.trimStart();
|
|
113
|
+
if (/^shutdown_approved\b/i.test(trimmed)) return "shutdown_approved";
|
|
114
|
+
if (/^shutdown_rejected\b/i.test(trimmed)) return "shutdown_rejected";
|
|
115
|
+
return void 0;
|
|
116
|
+
}
|
|
117
|
+
__name(classifyShutdownResponse, "classifyShutdownResponse");
|
|
118
|
+
async function readTeamFile(teamName) {
|
|
119
|
+
const filePath = getTeamFilePath(teamName);
|
|
120
|
+
try {
|
|
121
|
+
const raw = await fs.readFile(filePath, "utf-8");
|
|
122
|
+
return JSON.parse(raw);
|
|
123
|
+
} catch (err) {
|
|
124
|
+
if (isNodeError(err) && err.code === "ENOENT") {
|
|
125
|
+
return void 0;
|
|
126
|
+
}
|
|
127
|
+
throw err;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
__name(readTeamFile, "readTeamFile");
|
|
131
|
+
async function writeTeamFile(teamName, teamFile) {
|
|
132
|
+
const filePath = getTeamFilePath(teamName);
|
|
133
|
+
await fs.mkdir(path.dirname(filePath), { recursive: true });
|
|
134
|
+
await atomicWriteJSON(filePath, teamFile);
|
|
135
|
+
}
|
|
136
|
+
__name(writeTeamFile, "writeTeamFile");
|
|
137
|
+
async function createTeamFile(teamName, teamFile) {
|
|
138
|
+
const filePath = getTeamFilePath(teamName);
|
|
139
|
+
await fs.mkdir(path.dirname(filePath), { recursive: true });
|
|
140
|
+
await fs.writeFile(filePath, JSON.stringify(teamFile, null, 2) + "\n", {
|
|
141
|
+
encoding: "utf-8",
|
|
142
|
+
flag: "wx"
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
__name(createTeamFile, "createTeamFile");
|
|
146
|
+
function isPidAlive(pid) {
|
|
147
|
+
try {
|
|
148
|
+
process.kill(pid, 0);
|
|
149
|
+
return true;
|
|
150
|
+
} catch (err) {
|
|
151
|
+
return isNodeError(err) && err.code === "EPERM";
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
__name(isPidAlive, "isPidAlive");
|
|
155
|
+
async function tryReclaimStaleTeam(teamName) {
|
|
156
|
+
let existing;
|
|
157
|
+
try {
|
|
158
|
+
existing = await readTeamFile(teamName);
|
|
159
|
+
} catch {
|
|
160
|
+
return false;
|
|
161
|
+
}
|
|
162
|
+
if (!existing) {
|
|
163
|
+
await deleteTeamDirs(teamName);
|
|
164
|
+
return true;
|
|
165
|
+
}
|
|
166
|
+
if (typeof existing.leadPid !== "number" || existing.leadPid <= 0) {
|
|
167
|
+
return false;
|
|
168
|
+
}
|
|
169
|
+
if (existing.leadPid !== process.pid && isPidAlive(existing.leadPid)) {
|
|
170
|
+
return false;
|
|
171
|
+
}
|
|
172
|
+
await deleteTeamDirs(teamName);
|
|
173
|
+
return true;
|
|
174
|
+
}
|
|
175
|
+
__name(tryReclaimStaleTeam, "tryReclaimStaleTeam");
|
|
176
|
+
async function deleteTeamDirs(teamName) {
|
|
177
|
+
const teamDir = getTeamDir(teamName);
|
|
178
|
+
const tasksDir = getTasksDir(teamName);
|
|
179
|
+
await Promise.allSettled([
|
|
180
|
+
fs.rm(teamDir, { recursive: true, force: true }),
|
|
181
|
+
fs.rm(tasksDir, { recursive: true, force: true })
|
|
182
|
+
]);
|
|
183
|
+
}
|
|
184
|
+
__name(deleteTeamDirs, "deleteTeamDirs");
|
|
185
|
+
async function listTeamNames() {
|
|
186
|
+
const teamsRoot = getTeamsRootDir();
|
|
187
|
+
try {
|
|
188
|
+
const entries = await fs.readdir(teamsRoot, {
|
|
189
|
+
withFileTypes: true
|
|
190
|
+
});
|
|
191
|
+
return entries.filter((e) => e.isDirectory()).map((e) => e.name);
|
|
192
|
+
} catch {
|
|
193
|
+
return [];
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
__name(listTeamNames, "listTeamNames");
|
|
197
|
+
|
|
198
|
+
export {
|
|
199
|
+
getTeamsRootDir,
|
|
200
|
+
getTeamDir,
|
|
201
|
+
getTeamFilePath,
|
|
202
|
+
getInboxesDir,
|
|
203
|
+
getTasksDir,
|
|
204
|
+
sanitizeName,
|
|
205
|
+
formatAgentId,
|
|
206
|
+
generateUniqueTeammateName,
|
|
207
|
+
assignTeammateColor,
|
|
208
|
+
clearTeammateColors,
|
|
209
|
+
setMemberActive,
|
|
210
|
+
findMemberById,
|
|
211
|
+
findMemberByName,
|
|
212
|
+
classifyShutdownResponse,
|
|
213
|
+
readTeamFile,
|
|
214
|
+
writeTeamFile,
|
|
215
|
+
createTeamFile,
|
|
216
|
+
tryReclaimStaleTeam,
|
|
217
|
+
deleteTeamDirs,
|
|
218
|
+
listTeamNames
|
|
219
|
+
};
|
|
220
|
+
/**
|
|
221
|
+
* @license
|
|
222
|
+
* Copyright 2025 Qwen
|
|
223
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
224
|
+
*/
|
|
@@ -9,10 +9,10 @@ import {
|
|
|
9
9
|
require_subprotocol,
|
|
10
10
|
require_websocket,
|
|
11
11
|
require_websocket_server
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-FCMNKVXT.js";
|
|
13
13
|
import {
|
|
14
14
|
init_esbuild_shims
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-5O2XNYP6.js";
|
|
16
16
|
import {
|
|
17
17
|
__toESM
|
|
18
18
|
} from "./chunk-J2S4EL5Y.js";
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
createDebugLogger
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-7NFB7LBQ.js";
|
|
6
6
|
import {
|
|
7
7
|
init_esbuild_shims
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-5O2XNYP6.js";
|
|
9
9
|
import {
|
|
10
10
|
__name
|
|
11
11
|
} from "./chunk-J2S4EL5Y.js";
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
import {
|
|
4
4
|
external_exports,
|
|
5
5
|
external_exports2
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-H6XPXXMH.js";
|
|
7
7
|
import {
|
|
8
8
|
init_esbuild_shims
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-5O2XNYP6.js";
|
|
10
10
|
import {
|
|
11
11
|
__name
|
|
12
12
|
} from "./chunk-J2S4EL5Y.js";
|
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
settleChatRecording,
|
|
5
|
+
subscribeToHeadlessChatRecordingFailures
|
|
6
|
+
} from "./chunk-7DKX4A5Z.js";
|
|
6
7
|
import {
|
|
7
8
|
JsonOutputAdapter
|
|
8
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-43RXPU5Q.js";
|
|
9
10
|
import {
|
|
10
11
|
StreamJsonOutputAdapter
|
|
11
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-UNLRKDMW.js";
|
|
13
|
+
import {
|
|
14
|
+
handleAtCommand
|
|
15
|
+
} from "./chunk-A3U2TQUL.js";
|
|
12
16
|
import {
|
|
13
17
|
buildInitialSystemReminders,
|
|
14
18
|
buildSystemMessage,
|
|
@@ -20,10 +24,10 @@ import {
|
|
|
20
24
|
insertAfterFunctionResponses,
|
|
21
25
|
isSlashCommand,
|
|
22
26
|
normalizePartList
|
|
23
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-SMSFWUFY.js";
|
|
24
28
|
import {
|
|
25
29
|
RunBudgetEnforcer
|
|
26
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-ZA74ZTQU.js";
|
|
27
31
|
import {
|
|
28
32
|
AlreadyReportedError,
|
|
29
33
|
handleBudgetExceededError,
|
|
@@ -31,17 +35,15 @@ import {
|
|
|
31
35
|
handleError,
|
|
32
36
|
handleMaxTurnsExceededError,
|
|
33
37
|
handleToolError
|
|
34
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-ZGE3222J.js";
|
|
35
39
|
import {
|
|
36
40
|
isInlineModelOverrideAllowed
|
|
37
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-ERTHKDKN.js";
|
|
38
42
|
import {
|
|
39
|
-
|
|
40
|
-
buildSyntheticToolResponseParts,
|
|
43
|
+
buildSessionRecoveryPlanFromApiHistory,
|
|
41
44
|
createDuplicateProviderToolCallResponse,
|
|
42
45
|
detectAutonomousSentinel,
|
|
43
46
|
detectLoopSentinel,
|
|
44
|
-
detectTurnInterruption,
|
|
45
47
|
executeToolCall,
|
|
46
48
|
findRepeatedDuplicateProviderToolCall,
|
|
47
49
|
isSystemReminderContent,
|
|
@@ -49,22 +51,22 @@ import {
|
|
|
49
51
|
parseAndFormatApiError,
|
|
50
52
|
promptIdContext,
|
|
51
53
|
restoreWorktreeContext
|
|
52
|
-
} from "./chunk-
|
|
54
|
+
} from "./chunk-HJUDVNCO.js";
|
|
53
55
|
import {
|
|
54
56
|
isTelemetrySdkInitialized,
|
|
55
57
|
shutdownTelemetry,
|
|
56
58
|
uiTelemetryService
|
|
57
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-HWTL6MPR.js";
|
|
58
60
|
import {
|
|
59
61
|
ToolNames
|
|
60
|
-
} from "./chunk-
|
|
62
|
+
} from "./chunk-JGUT3LWZ.js";
|
|
61
63
|
import {
|
|
62
64
|
FatalInputError,
|
|
63
65
|
createDebugLogger
|
|
64
|
-
} from "./chunk-
|
|
66
|
+
} from "./chunk-7NFB7LBQ.js";
|
|
65
67
|
import {
|
|
66
68
|
init_esbuild_shims
|
|
67
|
-
} from "./chunk-
|
|
69
|
+
} from "./chunk-5O2XNYP6.js";
|
|
68
70
|
import {
|
|
69
71
|
__name
|
|
70
72
|
} from "./chunk-J2S4EL5Y.js";
|
|
@@ -140,6 +142,7 @@ async function emitNonInteractiveFinalMessage(params) {
|
|
|
140
142
|
const usage = computeUsageFromMetrics(metrics);
|
|
141
143
|
const outputFormat = config.getOutputFormat();
|
|
142
144
|
const stats = outputFormat === "json" /* JSON */ ? uiTelemetryService.getMetrics() : void 0;
|
|
145
|
+
await params.beforeEmit();
|
|
143
146
|
adapter.emitResult({
|
|
144
147
|
isError,
|
|
145
148
|
durationMs: Date.now() - params.startTimeMs,
|
|
@@ -166,7 +169,17 @@ async function runNonInteractive(config, settings, input, prompt_id, options = {
|
|
|
166
169
|
} else {
|
|
167
170
|
adapter = new JsonOutputAdapter(config);
|
|
168
171
|
}
|
|
169
|
-
const
|
|
172
|
+
const ownsAdapter = options.adapter === void 0;
|
|
173
|
+
const unsubscribeRecordingFailure = ownsAdapter ? subscribeToHeadlessChatRecordingFailures(config, adapter) : void 0;
|
|
174
|
+
let chatRecordingSettlement;
|
|
175
|
+
const settleBeforeTerminalOutput = /* @__PURE__ */ __name(() => {
|
|
176
|
+
chatRecordingSettlement ??= settleChatRecording(config, {
|
|
177
|
+
finalize: ownsAdapter
|
|
178
|
+
}).then(() => void 0);
|
|
179
|
+
return chatRecordingSettlement;
|
|
180
|
+
}, "settleBeforeTerminalOutput");
|
|
181
|
+
const emitResult = /* @__PURE__ */ __name(async (result) => {
|
|
182
|
+
await settleBeforeTerminalOutput();
|
|
170
183
|
adapter.emitResult(result);
|
|
171
184
|
options.onResultEmitted?.();
|
|
172
185
|
}, "emitResult");
|
|
@@ -186,6 +199,7 @@ async function runNonInteractive(config, settings, input, prompt_id, options = {
|
|
|
186
199
|
);
|
|
187
200
|
budgetEnforcer.start();
|
|
188
201
|
const routeAbort = /* @__PURE__ */ __name(async () => {
|
|
202
|
+
await settleBeforeTerminalOutput();
|
|
189
203
|
const exceeded = budgetEnforcer.getExceeded();
|
|
190
204
|
if (exceeded) {
|
|
191
205
|
await handleBudgetExceededError(config, exceeded);
|
|
@@ -306,32 +320,30 @@ ${reason}
|
|
|
306
320
|
);
|
|
307
321
|
let inlineModelOverride;
|
|
308
322
|
if (options.continueInterrupted) {
|
|
309
|
-
const
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
323
|
+
const recoveryPlan = buildSessionRecoveryPlanFromApiHistory({
|
|
324
|
+
sessionId,
|
|
325
|
+
apiHistory: geminiClient.getChat().getHistory()
|
|
326
|
+
});
|
|
327
|
+
debugLogger.info("[runNonInteractive] continueInterrupted recovery", {
|
|
328
|
+
kind: recoveryPlan.kind,
|
|
329
|
+
repairs: recoveryPlan.repairs,
|
|
330
|
+
hasContinuation: recoveryPlan.continuation !== void 0
|
|
316
331
|
});
|
|
317
|
-
if (
|
|
332
|
+
if (!recoveryPlan.continuation) {
|
|
318
333
|
await emitNonInteractiveFinalMessage({
|
|
319
334
|
message: "No interrupted turn to continue.",
|
|
320
335
|
isError: false,
|
|
321
336
|
adapter,
|
|
322
337
|
config,
|
|
323
|
-
startTimeMs: startTime
|
|
338
|
+
startTimeMs: startTime,
|
|
339
|
+
beforeEmit: settleBeforeTerminalOutput
|
|
324
340
|
});
|
|
325
341
|
return 0;
|
|
326
342
|
}
|
|
327
|
-
|
|
328
|
-
|
|
343
|
+
initialPartList = recoveryPlan.continuation.parts;
|
|
344
|
+
if (recoveryPlan.continuation.mode === "retry_user_parts") {
|
|
329
345
|
continueSendType = "retry" /* Retry */;
|
|
330
346
|
} else {
|
|
331
|
-
initialPartList = buildSyntheticToolResponseParts(
|
|
332
|
-
detection.danglingCalls,
|
|
333
|
-
ORPHAN_TOOL_USE_REPAIR_REASON
|
|
334
|
-
);
|
|
335
347
|
continueSendType = "toolResult" /* ToolResult */;
|
|
336
348
|
}
|
|
337
349
|
const reminderParts = buildInitialSystemReminders(config);
|
|
@@ -381,7 +393,8 @@ ${reason}
|
|
|
381
393
|
isError: slashCommandResult.messageType === "error",
|
|
382
394
|
adapter,
|
|
383
395
|
config,
|
|
384
|
-
startTimeMs: startTime
|
|
396
|
+
startTimeMs: startTime,
|
|
397
|
+
beforeEmit: settleBeforeTerminalOutput
|
|
385
398
|
});
|
|
386
399
|
return slashCommandResult.messageType === "error" ? 1 : 0;
|
|
387
400
|
}
|
|
@@ -395,7 +408,8 @@ ${reason}
|
|
|
395
408
|
isError: true,
|
|
396
409
|
adapter,
|
|
397
410
|
config,
|
|
398
|
-
startTimeMs: startTime
|
|
411
|
+
startTimeMs: startTime,
|
|
412
|
+
beforeEmit: settleBeforeTerminalOutput
|
|
399
413
|
});
|
|
400
414
|
return 1;
|
|
401
415
|
}
|
|
@@ -553,7 +567,7 @@ ${text}
|
|
|
553
567
|
const metrics = uiTelemetryService.getMetrics();
|
|
554
568
|
const usage = computeUsageFromMetrics(metrics);
|
|
555
569
|
const stats = outputFormat === "json" /* JSON */ ? uiTelemetryService.getMetrics() : void 0;
|
|
556
|
-
emitResult({
|
|
570
|
+
await emitResult({
|
|
557
571
|
isError: false,
|
|
558
572
|
durationMs: Date.now() - startTime,
|
|
559
573
|
apiDurationMs: totalApiDurationMs,
|
|
@@ -564,17 +578,18 @@ ${text}
|
|
|
564
578
|
});
|
|
565
579
|
return 0;
|
|
566
580
|
}, "emitStructuredSuccess");
|
|
567
|
-
const emitLoopDetectedResult = /* @__PURE__ */ __name(() => {
|
|
581
|
+
const emitLoopDetectedResult = /* @__PURE__ */ __name(async () => {
|
|
568
582
|
registry.abortAll();
|
|
569
583
|
flushQueuedNotificationsToSdk(localQueue);
|
|
570
584
|
finalizeOneShotMonitors();
|
|
571
585
|
if (outputFormat === "text" /* TEXT */) {
|
|
586
|
+
await settleBeforeTerminalOutput();
|
|
572
587
|
return 1;
|
|
573
588
|
}
|
|
574
589
|
const metrics = uiTelemetryService.getMetrics();
|
|
575
590
|
const usage = computeUsageFromMetrics(metrics);
|
|
576
591
|
const stats = outputFormat === "json" /* JSON */ ? uiTelemetryService.getMetrics() : void 0;
|
|
577
|
-
|
|
592
|
+
await emitResult({
|
|
578
593
|
isError: true,
|
|
579
594
|
durationMs: Date.now() - startTime,
|
|
580
595
|
apiDurationMs: totalApiDurationMs,
|
|
@@ -773,6 +788,7 @@ ${text}
|
|
|
773
788
|
hasUnsentToolResponse = false;
|
|
774
789
|
turnCount++;
|
|
775
790
|
if (config.getMaxSessionTurns() >= 0 && turnCount > config.getMaxSessionTurns()) {
|
|
791
|
+
await settleBeforeTerminalOutput();
|
|
776
792
|
await handleMaxTurnsExceededError(config);
|
|
777
793
|
}
|
|
778
794
|
let sendType;
|
|
@@ -894,6 +910,7 @@ ${text}
|
|
|
894
910
|
}
|
|
895
911
|
}
|
|
896
912
|
if (abortController.signal.aborted) {
|
|
913
|
+
await settleBeforeTerminalOutput();
|
|
897
914
|
await handleCancellationError(config);
|
|
898
915
|
}
|
|
899
916
|
if (teamManager) {
|
|
@@ -923,6 +940,7 @@ ${text}
|
|
|
923
940
|
};
|
|
924
941
|
turnCount++;
|
|
925
942
|
if (config.getMaxSessionTurns() >= 0 && turnCount > config.getMaxSessionTurns()) {
|
|
943
|
+
await settleBeforeTerminalOutput();
|
|
926
944
|
await handleMaxTurnsExceededError(config);
|
|
927
945
|
}
|
|
928
946
|
let itemMessages = [
|
|
@@ -1117,7 +1135,7 @@ ${text}
|
|
|
1117
1135
|
const previewSnippet = plainTextPreview.trim();
|
|
1118
1136
|
const previewSuffix = previewSnippet ? ` Output preview (${plainTextPreview.length}${plainTextPreview.length >= PLAIN_TEXT_PREVIEW_LIMIT ? "+" : ""} chars): ${JSON.stringify(previewSnippet)}.` : "";
|
|
1119
1137
|
const errorMessage = `Model produced plain text instead of calling the structured_output tool as required by --json-schema after ${turnCount} turn(s).` + previewSuffix;
|
|
1120
|
-
emitResult({
|
|
1138
|
+
await emitResult({
|
|
1121
1139
|
isError: true,
|
|
1122
1140
|
durationMs: Date.now() - startTime,
|
|
1123
1141
|
apiDurationMs: totalApiDurationMs,
|
|
@@ -1128,7 +1146,7 @@ ${text}
|
|
|
1128
1146
|
});
|
|
1129
1147
|
return 1;
|
|
1130
1148
|
}
|
|
1131
|
-
emitResult({
|
|
1149
|
+
await emitResult({
|
|
1132
1150
|
isError: false,
|
|
1133
1151
|
durationMs: Date.now() - startTime,
|
|
1134
1152
|
apiDurationMs: totalApiDurationMs,
|
|
@@ -1153,9 +1171,10 @@ ${text}
|
|
|
1153
1171
|
const stats = outputFormat === "json" /* JSON */ ? uiTelemetryService.getMetrics() : void 0;
|
|
1154
1172
|
const isAlreadyReportedError = error instanceof AlreadyReportedError;
|
|
1155
1173
|
const skipAdapterEmit = outputFormat === "text" /* TEXT */ && isAlreadyReportedError;
|
|
1174
|
+
await settleBeforeTerminalOutput();
|
|
1156
1175
|
if (!skipAdapterEmit) {
|
|
1157
1176
|
try {
|
|
1158
|
-
emitResult({
|
|
1177
|
+
await emitResult({
|
|
1159
1178
|
isError: true,
|
|
1160
1179
|
durationMs: Date.now() - startTime,
|
|
1161
1180
|
apiDurationMs: totalApiDurationMs,
|
|
@@ -1194,6 +1213,7 @@ ${text}
|
|
|
1194
1213
|
if (options.captureMonitorRegistrations !== false) {
|
|
1195
1214
|
monReg.setRegisterCallback(void 0);
|
|
1196
1215
|
}
|
|
1216
|
+
unsubscribeRecordingFailure?.();
|
|
1197
1217
|
process.stdout.removeListener("error", stdoutErrorHandler);
|
|
1198
1218
|
process.removeListener("SIGINT", shutdownHandler);
|
|
1199
1219
|
process.removeListener("SIGTERM", shutdownHandler);
|