@qwen-code/qwen-code 0.22.3 → 0.23.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/README.md +30 -0
- package/bundled/computer-use/SKILL.md +116 -180
- package/bundled/goal-draft/SKILL.md +5 -1
- package/bundled/qc-helper/docs/common-workflow.md +32 -0
- package/bundled/qc-helper/docs/configuration/auth.md +6 -6
- package/bundled/qc-helper/docs/configuration/model-providers.md +8 -2
- package/bundled/qc-helper/docs/configuration/settings.md +63 -58
- package/bundled/qc-helper/docs/extension/introduction.md +1 -1
- package/bundled/qc-helper/docs/features/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/approval-mode.md +3 -0
- package/bundled/qc-helper/docs/features/auto-mode.md +34 -17
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +4 -2
- package/bundled/qc-helper/docs/features/channels/dws.md +6 -2
- package/bundled/qc-helper/docs/features/channels/overview.md +5 -2
- package/bundled/qc-helper/docs/features/code-review.md +2 -2
- package/bundled/qc-helper/docs/features/commands.md +79 -1
- package/bundled/qc-helper/docs/features/computer-use.md +2 -2
- package/bundled/qc-helper/docs/features/goals.md +9 -3
- package/bundled/qc-helper/docs/features/headless.md +16 -1
- package/bundled/qc-helper/docs/features/hooks.md +8 -3
- package/bundled/qc-helper/docs/features/memory.md +1 -0
- package/bundled/qc-helper/docs/features/output-styles.md +38 -0
- package/bundled/qc-helper/docs/qwen-serve-deploy-local.md +17 -7
- package/bundled/qc-helper/docs/qwen-serve.md +74 -55
- package/bundled/review/SKILL.md +16 -7
- package/bundled/review/references/posting.md +3 -3
- package/chunks/MaxSizedBox-B3D7545A.js +111 -0
- package/chunks/{StandaloneSessionPicker-2FJAOLGG.js → StandaloneSessionPicker-QUMO4LLQ.js} +88 -86
- package/chunks/{acp-startup-profiler-GNYAL6LI.js → acp-startup-profiler-M4X5F3VK.js} +2 -2
- package/chunks/{acpAgent-2ZMIJAFV.js → acpAgent-2GTFCIEP.js} +2041 -444
- package/chunks/{agent-X5WX3L2I.js → agent-XKF5SZWU.js} +46 -46
- package/chunks/agent-headless-OC2IB55D.js +85 -0
- package/chunks/{anthropicContentGenerator-YVTB6QX7.js → anthropicContentGenerator-L76MR5OR.js} +53 -20
- package/chunks/{artifact-tool-XSMPHZBT.js → artifact-tool-MYCL2QCS.js} +3 -4
- package/chunks/{askUserQuestion-4SWJY65V.js → askUserQuestion-THQZMG44.js} +45 -7
- package/chunks/bridge-IHSBI2YJ.js +118 -0
- package/chunks/{build-INBK7IXX.js → build-63BIOYWK.js} +1 -1
- package/chunks/{ca-7HPYOYSZ.js → ca-BNU7YNDE.js} +3 -0
- package/chunks/{channel-management-service-HQ6KDS7C.js → channel-management-service-4MTCEGJB.js} +4 -4
- package/chunks/channel-settings-store-BVKWAI2T.js +121 -0
- package/chunks/{channel-worker-group-6NA6BBZV.js → channel-worker-group-47F4ISUZ.js} +7 -7
- package/chunks/{channel-worker-manager-NEZ2J6RK.js → channel-worker-manager-I5Y44GYR.js} +51 -10
- package/chunks/{channel-worker-supervisor-FKU7DIHJ.js → channel-worker-supervisor-6VCLUXFE.js} +4 -4
- package/chunks/{chunk-PPKZ7JOE.js → chunk-22UH7VTP.js} +1 -1
- package/chunks/chunk-24FVUD5P.js +49 -0
- package/chunks/{chunk-MZCJWS5Y.js → chunk-2M3EWQNG.js} +20 -0
- package/chunks/{chunk-7T52W4SW.js → chunk-32LU3APX.js} +1 -1
- package/chunks/{chunk-42IDLQWS.js → chunk-373DQUVA.js} +48 -13
- package/chunks/{chunk-MSBO7X2W.js → chunk-37JFWFCD.js} +1 -1
- package/chunks/{chunk-3JXM2CVW.js → chunk-3AKCBZVW.js} +3 -3
- package/chunks/{chunk-TVC6HQ2U.js → chunk-3JQZVCBI.js} +2 -2
- package/chunks/{chunk-2LNNVAUV.js → chunk-3L724BJ5.js} +246 -15
- package/chunks/{chunk-E7REAOTN.js → chunk-47ECGEJC.js} +4 -0
- package/chunks/{chunk-WNPDGUJO.js → chunk-47RYEQW5.js} +2 -3
- package/chunks/{chunk-TZBSGJ6C.js → chunk-4BGDFKQE.js} +7 -7
- package/chunks/{chunk-PZ66FRIC.js → chunk-4F7GQGXB.js} +11772 -4773
- package/chunks/{chunk-DMLVSW7L.js → chunk-4HVH57J3.js} +713 -9
- package/chunks/{chunk-CMHFCLBU.js → chunk-4LIFGNI4.js} +1 -1
- package/chunks/{chunk-3SZC4VP4.js → chunk-4M24B5J5.js} +88 -49
- package/chunks/{chunk-BOWFGCEU.js → chunk-4PSDSCW3.js} +3 -3
- package/chunks/chunk-4UANMABT.js +1026 -0
- package/chunks/{chunk-M3QRM3DE.js → chunk-54C6PIGT.js} +5 -5
- package/chunks/{chunk-HP5LR5HL.js → chunk-5EIOJGCR.js} +4 -4
- package/chunks/{chunk-64REQJJ2.js → chunk-5H5S4UY5.js} +3 -3
- package/chunks/chunk-5IENVM7Z.js +35 -0
- package/chunks/{chunk-I6LYRJPB.js → chunk-5Q5RC2WE.js} +2 -2
- package/chunks/{chunk-WGY3AVGM.js → chunk-5RTTI4GE.js} +79 -5
- package/chunks/{chunk-KID24ZFN.js → chunk-64QH2UC6.js} +13 -1
- package/chunks/{chunk-MF7HCQWZ.js → chunk-65HWLGA7.js} +3 -3
- package/chunks/{chunk-OU5APVWO.js → chunk-6A2D4QSO.js} +13 -7
- package/chunks/chunk-6HUXPLB5.js +110 -0
- package/chunks/{chunk-VQUGEVGR.js → chunk-7IKXTGZT.js} +1 -1
- package/chunks/{chunk-UTLCH2FK.js → chunk-7JMGTOH7.js} +437 -136
- package/chunks/{chunk-7LOELM2I.js → chunk-7RB56BRJ.js} +3 -3
- package/chunks/{chunk-NIFYWDYN.js → chunk-7TBU7PU2.js} +1 -1
- package/chunks/{chunk-V2NDP3I4.js → chunk-7XL4WRXM.js} +2 -2
- package/chunks/chunk-ADJD4LZF.js +210 -0
- package/chunks/{chunk-T7KMERIX.js → chunk-ADYN7P2Y.js} +2 -2
- package/chunks/{chunk-TPI7O7HR.js → chunk-AHYTURFB.js} +1 -1
- package/chunks/{chunk-LUEHOUHM.js → chunk-AI35S34R.js} +3 -3
- package/chunks/{chunk-CIZCL2MW.js → chunk-ALUYNJPM.js} +1486 -2172
- package/chunks/{chunk-ABS25QER.js → chunk-ANVG3BVV.js} +1 -1
- package/chunks/{chunk-6ZPDLGHN.js → chunk-AZJLY2XZ.js} +5 -5
- package/chunks/{chunk-A3LWD5MK.js → chunk-BA4WJC4L.js} +1 -1
- package/chunks/{chunk-W3JH33JE.js → chunk-BFY33IB4.js} +18 -10
- package/chunks/{chunk-N4X7G4J2.js → chunk-BHTYRHJF.js} +1 -1
- package/chunks/{chunk-TEBDFQBZ.js → chunk-BJXCYUGM.js} +11 -6
- package/chunks/{chunk-7VMIMAVB.js → chunk-C2VWOXHS.js} +8 -8
- package/chunks/{chunk-XHF7WQ6B.js → chunk-C4TIXFDZ.js} +16 -5
- package/chunks/chunk-CHEIIBT3.js +40 -0
- package/chunks/chunk-CVX63TFJ.js +348 -0
- package/chunks/{chunk-RXFQM6FQ.js → chunk-DMEUXLSS.js} +16 -1
- package/chunks/{chunk-EKSCLBBF.js → chunk-DQCKVAF5.js} +23 -5
- package/chunks/{chunk-734C6JGI.js → chunk-DSX7KQPM.js} +5195 -666
- package/chunks/{chunk-4CMJKUND.js → chunk-DTVQSSNM.js} +67 -2
- package/chunks/{chunk-BKWNKLZB.js → chunk-DYTW3QVG.js} +24 -9
- package/chunks/{chunk-C2X7KY45.js → chunk-E4JNFXNI.js} +3 -3
- package/chunks/{chunk-UHQFIS7N.js → chunk-EAHOJF6V.js} +28 -4
- package/chunks/{chunk-YLSQLSH7.js → chunk-EBDGRBZX.js} +24 -16
- package/chunks/{chunk-DJBQCO2E.js → chunk-EFTPIZIC.js} +412 -3
- package/chunks/{chunk-6DIGWMGT.js → chunk-EIJT2PQ6.js} +2 -2
- package/chunks/{chunk-4TT3IVGA.js → chunk-EIY7SUPZ.js} +1 -1
- package/chunks/{chunk-XQFT3QUF.js → chunk-ENYUKMFK.js} +1 -1
- package/chunks/{chunk-ZWJDJ6RU.js → chunk-EVFDRBUM.js} +157 -153
- package/chunks/{chunk-4VPCTGH6.js → chunk-EWRW2WQC.js} +15 -9
- package/chunks/{chunk-VBCPNIQD.js → chunk-F33GFWPR.js} +47 -184
- package/chunks/{chunk-ERFDKH32.js → chunk-F47DITLZ.js} +19 -8
- package/chunks/{chunk-73RM4POK.js → chunk-F7NF2IOE.js} +7 -7
- package/chunks/{chunk-EB6QRGHM.js → chunk-FD5SJOWT.js} +10 -7
- package/chunks/{chunk-SS5SDCD3.js → chunk-FRICLXCZ.js} +7 -7
- package/chunks/{chunk-NU7RKEZR.js → chunk-FUO5V5KI.js} +14 -7
- package/chunks/{chunk-G6FECKTJ.js → chunk-G5PBOQWI.js} +9 -6
- package/chunks/{chunk-CAJTKR6W.js → chunk-G7HBEEX7.js} +15 -9
- package/chunks/{chunk-4QHPPXK2.js → chunk-GB4UKWY5.js} +2 -2
- package/chunks/{chunk-QYMAKPY5.js → chunk-GH2S4GD5.js} +350 -12
- package/chunks/{chunk-LHBUKJG2.js → chunk-GXUTFQXK.js} +28 -25
- package/chunks/{chunk-KJO2LBUK.js → chunk-H43PSPYS.js} +5 -5
- package/chunks/{chunk-XSG6G3G6.js → chunk-HJBHMANB.js} +12 -14
- package/chunks/chunk-HRPFBHW7.js +336 -0
- package/chunks/{chunk-6PJOTWAN.js → chunk-HT5S5TRQ.js} +1 -1
- package/chunks/{chunk-HCOBAG2L.js → chunk-HWVUSYSN.js} +3 -8
- package/chunks/{chunk-2OUD5T67.js → chunk-I2TMJPCV.js} +213 -185
- package/chunks/{chunk-CLWO3B77.js → chunk-I4NRYS6A.js} +11 -11
- package/chunks/{chunk-V7EESTJV.js → chunk-I5N4EAS6.js} +1 -1
- package/chunks/{chunk-K5KXUXWC.js → chunk-IG4W5SJR.js} +3 -3
- package/chunks/{chunk-FROAFEFB.js → chunk-IPATA3T2.js} +3 -3
- package/chunks/{chunk-NKLP3DCK.js → chunk-IQAFKVXS.js} +1 -1
- package/chunks/{chunk-AYHQZBJ4.js → chunk-IRKQ4YYX.js} +3 -3
- package/chunks/{chunk-J3NNHTV6.js → chunk-J5TTWBZK.js} +6 -0
- package/chunks/{chunk-QFCDF5PL.js → chunk-JHN7UIDW.js} +1 -1
- package/chunks/{chunk-AVNATYLY.js → chunk-JJKNYRFY.js} +1 -1
- package/chunks/{chunk-CQH5KTKC.js → chunk-JR42V4UY.js} +1 -1
- package/chunks/chunk-JS73NNWF.js +30 -0
- package/chunks/{chunk-NV55WWD6.js → chunk-JUARRUMA.js} +802 -2011
- package/chunks/chunk-JX6XHPTX.js +26 -0
- package/chunks/{chunk-5JTIYALA.js → chunk-JZWOCUZ3.js} +1 -1
- package/chunks/{chunk-P2G476QN.js → chunk-KEVYJSI4.js} +13 -13
- package/chunks/{chunk-B466ZSHZ.js → chunk-KFN2IZYR.js} +3 -3
- package/chunks/{chunk-JWALNCLT.js → chunk-KGV55H53.js} +1 -1
- package/chunks/{chunk-23RFD54N.js → chunk-KHP66DFN.js} +1 -1
- package/chunks/{chunk-2SXSLSQE.js → chunk-KM3XVTMO.js} +12 -6
- package/chunks/{chunk-GPGU4S2N.js → chunk-KMU3ZHH4.js} +3 -3
- package/chunks/chunk-KOGW3YWJ.js +2054 -0
- package/chunks/{chunk-NMOD2FXQ.js → chunk-L26ONV2Y.js} +8 -8
- package/chunks/chunk-L34XSHIZ.js +28 -0
- package/chunks/{chunk-SEONHUS3.js → chunk-LAUEEBDL.js} +2 -0
- package/chunks/{chunk-3WK3QDNV.js → chunk-LB3WQQJK.js} +2 -2
- package/chunks/{chunk-URE3QBBB.js → chunk-LEPCWS5A.js} +3 -3
- package/chunks/{chunk-36GSQ3MM.js → chunk-LHBNR6EU.js} +2 -2
- package/chunks/{chunk-V4264FEG.js → chunk-LKODFJRD.js} +1 -1
- package/chunks/{chunk-PADPMMYM.js → chunk-LOBDDFYK.js} +5 -29
- package/chunks/{chunk-BXDAPVQU.js → chunk-LU77UT4D.js} +28 -4
- package/chunks/{chunk-RFIDDFAL.js → chunk-M4KFODIP.js} +1 -1
- package/chunks/{chunk-CFJY4DGX.js → chunk-M4LBBSVP.js} +4 -2
- package/chunks/{chunk-KYWTPLBJ.js → chunk-MOF6VZN2.js} +2 -2
- package/chunks/{chunk-DJPASAUV.js → chunk-MP6YZ4RK.js} +4829 -3638
- package/chunks/{chunk-T26EAKDL.js → chunk-N2TNM3QB.js} +2 -6
- package/chunks/{chunk-2TNL5KPM.js → chunk-N4QWUPDM.js} +7 -0
- package/chunks/{chunk-7S226YTK.js → chunk-NFIDVZND.js} +11 -1
- package/chunks/{chunk-ZEYFMJQA.js → chunk-NQ4L2CMD.js} +83 -18
- package/chunks/{chunk-ZZUKP7HV.js → chunk-NRL5CUZT.js} +1 -1
- package/chunks/{chunk-WXEA74YB.js → chunk-NSUKQ4DN.js} +9 -3
- package/chunks/chunk-NUHOLAQ6.js +59 -0
- package/chunks/{chunk-DJEZ55D4.js → chunk-NVVJTUSL.js} +336 -140
- package/chunks/{chunk-3XKLXHGK.js → chunk-NXKOVOM5.js} +9 -9
- package/chunks/{chunk-5Q372OFJ.js → chunk-O4KNCAX4.js} +57 -10
- package/chunks/{chunk-GOXKNSDZ.js → chunk-O5CD7T4T.js} +40 -9
- package/chunks/{chunk-XIQ5HQ2F.js → chunk-OBTWL6ZW.js} +1 -1
- package/chunks/{chunk-PDQGMSZK.js → chunk-ODZF64DM.js} +1 -1
- package/chunks/{chunk-5MK45KZ3.js → chunk-OHOO527W.js} +1 -1
- package/chunks/{chunk-36LGBEM6.js → chunk-OHU2H5CS.js} +1 -1
- package/chunks/{chunk-JB4JIVTJ.js → chunk-OKTNXDVO.js} +1 -1
- package/chunks/{chunk-CETB5XY4.js → chunk-ORFIYTI2.js} +1 -1
- package/chunks/{chunk-7E7UCJHS.js → chunk-OSHQMOBS.js} +18 -17
- package/chunks/chunk-OSSTATJF.js +1310 -0
- package/chunks/chunk-P6UIF2OW.js +400 -0
- package/chunks/{chunk-U54AYGEC.js → chunk-PB7JBAHF.js} +15 -49
- package/chunks/{chunk-Y5S7LBOZ.js → chunk-PCRBLMIN.js} +17 -3
- package/chunks/{chunk-WAOIHTJS.js → chunk-PDAKFU7M.js} +1 -1
- package/chunks/{chunk-YTDVNSUQ.js → chunk-QAK5475D.js} +1 -1
- package/chunks/{chunk-ST5MDGH3.js → chunk-QI27MKNQ.js} +27 -19
- package/chunks/{chunk-MK2GIB46.js → chunk-QJGYU5PG.js} +1 -1
- package/chunks/{chunk-SMPR7SPO.js → chunk-QJNDUTOL.js} +45 -239
- package/chunks/{chunk-MQM5PJML.js → chunk-QJVZLILI.js} +1 -1
- package/chunks/{chunk-B5PHIJGI.js → chunk-QKDNS6FU.js} +2 -2
- package/chunks/{chunk-ZU4UDIWX.js → chunk-QQD2GART.js} +15 -9
- package/chunks/{chunk-62GQFYID.js → chunk-RAFQIHN2.js} +3 -3
- package/chunks/{chunk-MO3FC2WT.js → chunk-RJUVTJEZ.js} +1 -1
- package/chunks/{chunk-M6FOJXW3.js → chunk-RKW36UWC.js} +1 -1
- package/chunks/{chunk-GBJBJ4HX.js → chunk-RM4WT2XB.js} +4 -26
- package/chunks/{chunk-VGIFXISB.js → chunk-RN3YGDCA.js} +7 -5
- package/chunks/{chunk-DYXFD5RO.js → chunk-S2T7H5MI.js} +1 -1
- package/chunks/{chunk-FTF2YIZ5.js → chunk-S6H3ELPG.js} +1 -1
- package/chunks/{chunk-4NDLQAY2.js → chunk-SI7WDR3U.js} +524 -16
- package/chunks/{chunk-2YOHKHYR.js → chunk-SRF4KTAG.js} +6 -6
- package/chunks/{chunk-ZZMSC3RG.js → chunk-STCVJXQB.js} +24 -24
- package/chunks/{chunk-ST5V3ZOC.js → chunk-SULZPKTA.js} +3 -3
- package/chunks/{chunk-6X7EU5TI.js → chunk-SX2QIMJV.js} +9 -7
- package/chunks/{chunk-V5J4J5TP.js → chunk-TJYRTS4S.js} +2 -20
- package/chunks/{chunk-C3PEFRKD.js → chunk-TMKTOTMQ.js} +5 -5
- package/chunks/{chunk-ISKH4QX3.js → chunk-TQHPVKO6.js} +4 -4
- package/chunks/{chunk-HVC3PNVC.js → chunk-TSZSGQ3N.js} +1 -1
- package/chunks/{chunk-ICURCKIU.js → chunk-U4DJ5XB3.js} +594 -91
- package/chunks/{chunk-TTX2JUE6.js → chunk-U6D2PPMN.js} +1 -1
- package/chunks/{chunk-GVIVASYK.js → chunk-UAKRDON5.js} +4 -4
- package/chunks/{chunk-D5LUXLUH.js → chunk-UJ4DUYIH.js} +18 -4
- package/chunks/{chunk-VTHREBQM.js → chunk-UKYXYWI2.js} +2 -2
- package/chunks/{chunk-ZYMLPEZQ.js → chunk-UM2FFKXN.js} +3 -3
- package/chunks/{chunk-2OBKDPZZ.js → chunk-UPFRILIL.js} +2 -2
- package/chunks/{chunk-2HYKTO7V.js → chunk-UUASLXHW.js} +55 -6
- package/chunks/chunk-V5U2NZNJ.js +29 -0
- package/chunks/{chunk-P5Y23G2L.js → chunk-V7RNNPGC.js} +1 -18
- package/chunks/{chunk-Q2MSPKIJ.js → chunk-VBWD6C27.js} +1 -1
- package/chunks/chunk-VGHZT6JR.js +51 -0
- package/chunks/{chunk-MPNBVAEU.js → chunk-VNAYZAFX.js} +4 -4
- package/chunks/chunk-VPSIC437.js +780 -0
- package/chunks/{chunk-AIAOIFY4.js → chunk-VWTSRH6C.js} +92 -17
- package/chunks/{chunk-4K7KNVWH.js → chunk-VYIUNFEA.js} +3 -3
- package/chunks/{chunk-EQSBPBZ3.js → chunk-WP4AX3XD.js} +5 -7
- package/chunks/{chunk-BFPESSTR.js → chunk-XEAAO654.js} +1 -1
- package/chunks/{chunk-RU7BK6B3.js → chunk-XLXAZLDR.js} +3 -3
- package/chunks/{chunk-EFWRMA2I.js → chunk-YPWZTR7F.js} +3 -3
- package/chunks/{chunk-XF63PKEN.js → chunk-ZDFQGHZH.js} +1 -1
- package/chunks/{chunk-OZ6KS6KW.js → chunk-ZGCKTAL5.js} +6 -1
- package/chunks/chunk-ZHO2CW6D.js +205 -0
- package/chunks/chunk-ZJ2LM2SI.js +198 -0
- package/chunks/{chunk-AYFA7MZV.js → chunk-ZKFTS3OV.js} +6 -6
- package/chunks/{chunk-HMJ2P3SV.js → chunk-ZL4HFSL6.js} +91 -29
- package/chunks/{chunk-DJECZIJX.js → chunk-ZTPGUFQV.js} +30 -8
- package/chunks/{chunk-7EQQR46F.js → chunk-ZVP4PWBU.js} +1 -1
- package/chunks/chunk-bdqvmfwv-ZTSOWAFE.js +17446 -0
- package/chunks/config-utils-LVSYDLHZ.js +114 -0
- package/chunks/contextCommand-TZD7UAJK.js +107 -0
- package/chunks/{core-runtime-AXB6SK5D.js → core-runtime-B4UKKIAQ.js} +63 -62
- package/chunks/{create-sub-session-23ITIELI.js → create-sub-session-LUPWEUHR.js} +3 -3
- package/chunks/{create-sub-session-4QNE64MR.js → create-sub-session-NJ24B4US.js} +94 -66
- package/chunks/{cron-create-KJ4IY6PP.js → cron-create-CRSPET3H.js} +4 -4
- package/chunks/{cron-delete-MBLQCAYY.js → cron-delete-DB77SZTU.js} +4 -4
- package/chunks/{cron-list-DWH2PQ47.js → cron-list-U2JNYWV6.js} +4 -4
- package/chunks/{daemon-3GNHB3M2.js → daemon-RKDGBFLK.js} +613 -102
- package/chunks/{daemon-git-worktree-guard-IVAJJWYK.js → daemon-git-worktree-guard-O2HPOBAB.js} +62 -61
- package/chunks/daemon-status-provider-GRRVCJFW.js +117 -0
- package/chunks/daemon-trust-policy-YJL442BK.js +113 -0
- package/chunks/{daemon-trust-policy-monitor-KGGROSIV.js → daemon-trust-policy-monitor-JL7F4Y4Q.js} +68 -67
- package/chunks/{de-X6HLSIFE.js → de-T4BLOKEC.js} +3 -0
- package/chunks/deferred-core-runtime-S32AYVZI.js +115 -0
- package/chunks/{devtools-JCG4K2NZ.js → devtools-VDRJYPZF.js} +1 -1
- package/chunks/{discovery-X2NV535U.js → discovery-TUM3ZQ6U.js} +2 -2
- package/chunks/{display-image-BE7I6ZB6.js → display-image-73C7XNRK.js} +5 -5
- package/chunks/{dist-LVZCXVPF.js → dist-62OZ7QXB.js} +44 -26
- package/chunks/{dist-GFN5DCBX.js → dist-EDHQIBYD.js} +152 -63
- package/chunks/{dist-N6W6E753.js → dist-GT64AAUR.js} +135 -26
- package/chunks/{dist-6BPYWHVD.js → dist-JVXT4VUJ.js} +14 -7
- package/chunks/{dist-4WXLCBDR.js → dist-L6URO6CK.js} +12 -5
- package/chunks/{dist-5VXFRTWU.js → dist-LXFYIJNG.js} +866 -172
- package/chunks/{dist-SWQMYP2Q.js → dist-PDGNRVPY.js} +27 -8
- package/chunks/{dist-NSV4NBPK.js → dist-QAF5DO3Y.js} +380 -83
- package/chunks/{dist-HZNT6GQS.js → dist-ZCJLKQSP.js} +28 -14
- package/chunks/earlyInputCapture-BBPCIVZG.js +108 -0
- package/chunks/{edit-LEQLAGPZ.js → edit-SUGXY63Y.js} +47 -47
- package/chunks/{en-YLXBXM4Z.js → en-2RATMNX7.js} +5 -0
- package/chunks/{enter-worktree-35QCAAFP.js → enter-worktree-B6USKSIK.js} +7 -7
- package/chunks/{enterPlanMode-ONQN3WHE.js → enterPlanMode-MDX4RVVL.js} +48 -48
- package/chunks/{environment-UANTR7A4.js → environment-VN6RXDVN.js} +63 -62
- package/chunks/errors-UEY36PIT.js +114 -0
- package/chunks/{exit-worktree-XQD6D543.js → exit-worktree-DLQ73SJH.js} +10 -8
- package/chunks/exitPlanMode-EPHIEDAA.js +83 -0
- package/chunks/{fast-path-WUL7UZ6H.js → fast-path-Y73R42LV.js} +8 -7
- package/chunks/{fast-path-settings-XH426LUU.js → fast-path-settings-MFUR3IWK.js} +3 -3
- package/chunks/{fr-FTZWF462.js → fr-BGHGYX6A.js} +3 -0
- package/chunks/{glob-Y54QUWDY.js → glob-DMGH7EZN.js} +47 -47
- package/chunks/goal-tools-3RF3PXCL.js +99 -0
- package/chunks/{grep-5GPICQBU.js → grep-AJVLCVXC.js} +9 -7
- package/chunks/handleAutoUpdate-HVWQT2AU.js +110 -0
- package/chunks/i18n-5OR7NTRZ.js +125 -0
- package/chunks/{image-gen-J6FDGUZP.js → image-gen-VOIDOHOB.js} +8 -8
- package/chunks/initializer-JE5RQSOE.js +114 -0
- package/chunks/installationInfo-KO3CCSCK.js +108 -0
- package/chunks/{ja-2GL5FKYJ.js → ja-G3FTD5XE.js} +3 -0
- package/chunks/{keychain-token-storage-37XPR34V.js → keychain-token-storage-REZVMJA6.js} +2 -2
- package/chunks/list-3IORSFIY.js +117 -0
- package/chunks/list-agents-SBMONIUK.js +128 -0
- package/chunks/{llm-NSAVK5V3.js → llm-K26SUDVK.js} +223 -140
- package/chunks/{llm-content-generator-AY2QKXHE.js → llm-content-generator-TT6EAUD4.js} +11 -12
- package/chunks/loadedSettingsAdapter-KLLFZF3M.js +111 -0
- package/chunks/{loggingContentGenerator-DSFQHXIF.js → loggingContentGenerator-EYQBA4M4.js} +66 -65
- package/chunks/{loop-wakeup-XJFONSQ7.js → loop-wakeup-QA6SHCZT.js} +5 -5
- package/chunks/{ls-3VAT2J7A.js → ls-HEJNCEYO.js} +4 -4
- package/chunks/{lsp-5W7IRUBH.js → lsp-WOQKNZP6.js} +2 -2
- package/chunks/{managed-npm-update-TSWENTK5.js → managed-npm-update-HIJTODQT.js} +61 -60
- package/chunks/mcp-A2UEHETW.js +111 -0
- package/chunks/{monitor-RW4GWJHB.js → monitor-DKNZQAB2.js} +46 -46
- package/chunks/{node-QKLNSZMX.js → node-UETAYMMO.js} +3 -3
- package/chunks/nonInteractiveCli-YA47F2F4.js +190 -0
- package/chunks/{notebook-edit-CQNYS5OR.js → notebook-edit-MGHTRL2D.js} +47 -47
- package/chunks/{open-with-auth-YN3QZHVM.js → open-with-auth-D6JD6LDS.js} +3 -3
- package/chunks/{openaiContentGenerator-J6QIF7EX.js → openaiContentGenerator-ZJIEQ3ZJ.js} +26 -28
- package/chunks/pidfile-ETHAZNMY.js +112 -0
- package/chunks/{processUtils-GPHNANKZ.js → processUtils-UY3SAJJZ.js} +2 -2
- package/chunks/prompt-terminal-ledger-GZ747VYE.js +106 -0
- package/chunks/{pt-XN2YWJVM.js → pt-D73IFYT7.js} +3 -0
- package/chunks/{qwenContentGenerator-WWDXPYQI.js → qwenContentGenerator-VI4KATRY.js} +58 -58
- package/chunks/{qwenOAuth2-OF5WRBQT.js → qwenOAuth2-7AOCKSOQ.js} +7 -7
- package/chunks/{read-file-FQUQHC6N.js → read-file-P7F4P7LV.js} +11 -13
- package/chunks/{read-mcp-resource-XD257PGJ.js → read-mcp-resource-GLAGB6R7.js} +2 -2
- package/chunks/{record-artifact-VW23GS4F.js → record-artifact-SWVR7NSU.js} +4 -4
- package/chunks/renderer-selection-M4UN63VJ.js +99 -0
- package/chunks/{report-findings-AO5VYFLR.js → report-findings-AL5YW3KI.js} +5 -5
- package/chunks/{request-shutdown-BCLA3JV2.js → request-shutdown-5YK4IZ54.js} +8 -7
- package/chunks/resumeHistoryUtils-DPZKFW24.js +119 -0
- package/chunks/ripGrep-C7LJKUPZ.js +37 -0
- package/chunks/{ru-OLTMFJEW.js → ru-QMISLKRH.js} +3 -0
- package/chunks/{run-qwen-serve-5X6IDZER.js → run-qwen-serve-OGTEEUR2.js} +589 -251
- package/chunks/{runtime-HK27GMPF.js → runtime-LNBLEMZS.js} +73 -72
- package/chunks/scheduled-tasks-FLDYZQOF.js +128 -0
- package/chunks/{scheduler-WD4MHMO5.js → scheduler-73YXGUGW.js} +62 -61
- package/chunks/{sdk-exporters-grpc-G5IT4XS4.js → sdk-exporters-grpc-MXTVSE3C.js} +2 -2
- package/chunks/{sdk-exporters-http-TTU2CHBU.js → sdk-exporters-http-3JO5TJNU.js} +4 -4
- package/chunks/{sdk-impl-UUMVYMAL.js → sdk-impl-HZAUUTHJ.js} +6 -6
- package/chunks/{send-message-AJ4OCUBV.js → send-message-JC7NJTY6.js} +166 -35
- package/chunks/serve-3UR2H4CV.js +119 -0
- package/chunks/{server-GO2N5DH7.js → server-AOYZVVOM.js} +2904 -860
- package/chunks/{session-IFNHTUBT.js → session-UAWFNFGI.js} +119 -114
- package/chunks/session-attachments-root-ZCGXQQTR.js +104 -0
- package/chunks/{session-pr-refresh-I3UBWMVP.js → session-pr-refresh-CT2INROL.js} +157 -88
- package/chunks/{settings-L6N54CU6.js → settings-BHRGDASJ.js} +67 -66
- package/chunks/{shell-4Y5LLW6N.js → shell-YHOGC7TO.js} +46 -46
- package/chunks/{skill-YOWTRAKQ.js → skill-ZGBKNCHQ.js} +131 -97
- package/chunks/skill-settings-AKSP665O.js +119 -0
- package/chunks/spawnChannel-N25MBB6F.js +112 -0
- package/chunks/standalone-update-XGPWJDRN.js +119 -0
- package/chunks/start-opentui-ui-FZ4USOU7.js +55342 -0
- package/chunks/{startInteractiveUI-XDFSHBZD.js → startInteractiveUI-E2WQJUOA.js} +3509 -4706
- package/chunks/{syntheticOutput-ML43GEFN.js → syntheticOutput-HJNZSEHN.js} +3 -3
- package/chunks/{task-create-QN4LYRSE.js → task-create-6RSD54S5.js} +12 -12
- package/chunks/{task-list-JPLGK45U.js → task-list-IQSACPOM.js} +34 -11
- package/chunks/{task-stop-CXEH5L2D.js → task-stop-HE2LRQNW.js} +2 -2
- package/chunks/{task-update-IWEOJFV2.js → task-update-XAJ2NYOA.js} +13 -14
- package/chunks/{team-create-OOPXCDBA.js → team-create-SOKMYSQU.js} +54 -55
- package/chunks/{team-delete-RZVVSGCY.js → team-delete-NGNNKGMG.js} +25 -8
- package/chunks/{team-plan-approval-DSX5EWAT.js → team-plan-approval-U7ZWXYAY.js} +46 -46
- package/chunks/terminal-image-renderer-KKM4OBLO.js +117 -0
- package/chunks/theme-manager-GQHF3A7T.js +103 -0
- package/chunks/{todoWrite-WDJNQEMW.js → todoWrite-5UTVUXHA.js} +39 -9
- package/chunks/{tool-search-J5Q6U7DN.js → tool-search-IAI2RVWT.js} +21 -19
- package/chunks/total-session-admission-G4CGCSTG.js +113 -0
- package/chunks/trustedFolders-D2I3FDPB.js +123 -0
- package/chunks/{update-relaunch-SIKHLHVR.js → update-relaunch-5RWKZAL3.js} +5 -5
- package/chunks/updateCheck-ZXOQDFEI.js +119 -0
- package/chunks/useAutoAcceptIndicator-6EK4QGAH.js +121 -0
- package/chunks/{validateNonInterActiveAuth-JUDQP6V4.js → validateNonInterActiveAuth-QPFEKATS.js} +113 -109
- package/chunks/{version-C63GDDWN.js → version-JKNG7YDH.js} +1 -1
- package/chunks/{web-fetch-FOQZMNSC.js → web-fetch-X3AHIIHW.js} +16 -19
- package/chunks/{web-search-PUJTBFUC.js → web-search-K2FMOGS5.js} +10 -11
- package/chunks/{web-shell-static-HNB4FDOE.js → web-shell-static-POZHGGXE.js} +5 -4
- package/chunks/{workflow-Y5IPINVH.js → workflow-TOLPAK5G.js} +213 -119
- package/chunks/workspace-providers-status-PCJK3RC7.js +115 -0
- package/chunks/{workspace-registration-store-SMJWI2AI.js → workspace-registration-store-KQWVVW4Y.js} +2 -1
- package/chunks/workspace-registry-YNIOB6HJ.js +122 -0
- package/chunks/workspace-runtime-coordinator-WG2RNEN7.js +123 -0
- package/chunks/workspace-service-G4ZNBOFH.js +127 -0
- package/chunks/workspace-skills-status-FMTPPMWC.js +114 -0
- package/chunks/{workspace-trust-reconciler-PLIDLJZX.js → workspace-trust-reconciler-IBDFQBQS.js} +76 -77
- package/chunks/wrapper-JH3IFHT2.js +35 -0
- package/chunks/write-file-YTLFY2S5.js +88 -0
- package/chunks/{zh-UNY63FR3.js → zh-25DF7OGK.js} +5 -0
- package/chunks/{zh-TW-RPTMRTHG.js → zh-TW-5EDMZVGK.js} +5 -0
- package/chunks/{zoom-image-LYQD7BQA.js → zoom-image-IFXSN74N.js} +11 -13
- package/cli.js +131 -90
- package/locales/ca.js +6 -0
- package/locales/de.js +6 -0
- package/locales/en.js +9 -0
- package/locales/fr.js +6 -0
- package/locales/ja.js +6 -0
- package/locales/pt.js +6 -0
- package/locales/ru.js +6 -0
- package/locales/zh-TW.js +9 -0
- package/locales/zh.js +9 -0
- package/package.json +3 -3
- package/web-shell/assets/{abnfDiagram-VCTEODGH-TRCMSA_6.js → abnfDiagram-VCTEODGH-Cxf7xE_Z.js} +1 -1
- package/web-shell/assets/{arc-D9Uls5b3.js → arc-ESi1eNkE.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-Bwb8jPXg.js → architectureDiagram-5GKGNRK7-D9l7-bDo.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-DHj71TSX.js → blockDiagram-NRAW4CY4-Bc8DEasw.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-uKBBdbyr.js → c4Diagram-UCG6FXSJ-Dimb2Hmh.js} +1 -1
- package/web-shell/assets/channel-B7ohGDil.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-BZd0Phrl.js → chunk-2Q5K7J3B-jVDmOpAQ.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-7KNeNBqN.js → chunk-5VM5RSS4-DbG_SwdB.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-BeboS7Fi.js → chunk-F27PBJKO-QEc4cY1v.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-RV3JONoj.js → chunk-G27WJ6UU-iJ36lQ3X.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-Yw9FCFsP.js → chunk-JWPE2WC7-DuArnVtF.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-GIMnydDe.js → chunk-LCL6LL3I-DxOf1zwL.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-Cfrux7bL.js → chunk-POPQ4Y6H-lVLu9Ild.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-BlvIN0CO.js → chunk-SVP7TREG-C6XYlIer.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-DMs7Rr4t.js → chunk-XXDRQBXY-CiG2j2Ji.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-DdFpqpfD.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-DdFpqpfD.js +1 -0
- package/web-shell/assets/{cose-bilkent-JH36ORCC-DNGqTNwI.js → cose-bilkent-JH36ORCC-DGVHMMVm.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-CojMpaoH.js → cynefin-OW5HDTMX-D6cgpCnH.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-DF07YXGo.js → cynefinDiagram-5FMLGOSQ-BKv4Z-UX.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-17-4WtCH.js → dagre-3AP2YEHR-B4ABMIG-.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-G3Wuyz9m.js → diagram-S7CK7UJ4-DgCkp_Lm.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-nyWIKZ8P.js → diagram-UQ7AKVKN-FG0FNokz.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-tKHhmYSC.js → diagram-VSXAHHWV-JgkP9qg-.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-CpDf1hYk.js → diagram-VX7I27RA-ADh2x83l.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-Cah2IFXG.js → diagram-Z3DM3KII-yXqoYF1J.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-DNaCkgxy.js → ebnfDiagram-PWID7BFC-Duk83Ek_.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-CAdRgcf1.js → erDiagram-SSCWMZ5O-DMdvxySG.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-CMUJAShL.js → flowDiagram-A5DVABFB-DHjVgSji.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-o-_MUNey.js → ganttDiagram-EL5Y4UJY-DMM9DkCE.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-_aG-2Z7O.js → gitGraphDiagram-WWUBYQGX-t_ug9vO8.js} +1 -1
- package/web-shell/assets/index-BGZRqbRo.css +36 -0
- package/web-shell/assets/index-DRri_6_x.js +2067 -0
- package/web-shell/assets/{index-BK_NKxiJ.js → index-zqvnpGHv.js} +1 -1
- package/web-shell/assets/{infoDiagram-RXCK75RN-qJPeZbGP.js → infoDiagram-RXCK75RN-eT1fANNm.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-7Om4vNo1.js → ishikawaDiagram-5VMMS53U-k3evzZNn.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-BNtXqmBW.js → journeyDiagram-EYS64GPL-CGim3EAi.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-COgFec8P.js → kanban-definition-3QL26DDD-WHfJo-22.js} +1 -1
- package/web-shell/assets/{layout-B9n81PC9.js → layout-DkqIaFlJ.js} +1 -1
- package/web-shell/assets/{linear-Bb6nXZQq.js → linear-Bdkd3mCz.js} +1 -1
- package/web-shell/assets/{mermaid.core-Cgrm3JVT.js → mermaid.core-CGw0LkT_.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-TKwLTjnG.js → mindmap-definition-FBJOCRG2-C9V4rBvo.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-BJPuvlpi.js → pegDiagram-XKGWAZYB-CwoI2T5G.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-D01VkNsW.js → pieDiagram-E7YTZNPT-DaTmBmPG.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-C4hHsiv-.js → quadrantDiagram-AXDQQJYC-plh6MyGI.js} +1 -1
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-CuEO4xK2.js → railroadDiagram-O6MQD6OU-D_b-S0iK.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-D5J_vIo5.js → requirementDiagram-EFPCY7ZU-zUzTN7VE.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-DQKY223V.js → sankeyDiagram-P5KCCOFB-m6AhoD0l.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-D27YV_cm.js → sequenceDiagram-WJ2MYXX4-Cwhzsine.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-TJg8UcwV.js → sizeCapture-X5ZJPWSS-CcZuKIae.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-CmnPzUIx.js → stateDiagram-HBIQ2CUA-CFoiJwD_.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V--H8HdEmk.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-ByeP3_Nu.js → swimlanes-XN3QIQJK-CgS9hcaV.js} +1 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-ShE9OIgf.js +8 -0
- package/web-shell/assets/{timeline-definition-24CTP7MA-BsFA5juR.js → timeline-definition-24CTP7MA-Dzzc05t9.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-DREP2ECo.js → vennDiagram-4TSXK5OY-DemK0f7Y.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-iyd9lKi2.js → wardleyDiagram-VM6X3IG4-CquLxtMr.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-CVr1_j9q.js → xychartDiagram-S5SC5T6Z-BTBKTM5g.js} +1 -1
- package/web-shell/index.html +196 -2
- package/chunks/MaxSizedBox-X42SXBJH.js +0 -110
- package/chunks/agent-headless-IZM25LJA.js +0 -85
- package/chunks/bridge-ME6QXZNA.js +0 -119
- package/chunks/channel-settings-store-PEOI7XCG.js +0 -120
- package/chunks/chunk-7J6OTNGO.js +0 -424
- package/chunks/chunk-BWORX6FA.js +0 -135
- package/chunks/chunk-CPBF7KYF.js +0 -51
- package/chunks/chunk-H72BQNM3.js +0 -645
- package/chunks/chunk-JHYH6PYQ.js +0 -3096
- package/chunks/chunk-SS4MRMKE.js +0 -3525
- package/chunks/chunk-T4EFG2P5.js +0 -113
- package/chunks/chunk-XZA32HII.js +0 -19
- package/chunks/chunk-ZYNTSXWK.js +0 -32
- package/chunks/config-utils-R6M3TA34.js +0 -113
- package/chunks/contextCommand-ZCAP23J6.js +0 -106
- package/chunks/daemon-status-provider-K3SJ5C2U.js +0 -117
- package/chunks/daemon-trust-policy-DOR3YG62.js +0 -112
- package/chunks/deferred-core-runtime-WOYLUQQ7.js +0 -114
- package/chunks/earlyInputCapture-OHBEVO4K.js +0 -107
- package/chunks/errors-WAK6KFBC.js +0 -113
- package/chunks/exitPlanMode-UEYBG6P5.js +0 -83
- package/chunks/goal-tools-PTD3MBA7.js +0 -411
- package/chunks/handleAutoUpdate-FP3NWNSG.js +0 -109
- package/chunks/i18n-INIU5X7A.js +0 -124
- package/chunks/initializer-TYODV6GE.js +0 -113
- package/chunks/installationInfo-AAPKYDSZ.js +0 -107
- package/chunks/list-TUODDN6J.js +0 -116
- package/chunks/list-agents-DI3YFTDT.js +0 -80
- package/chunks/loadedSettingsAdapter-KJCLZ3C4.js +0 -110
- package/chunks/mcp-MWSAPFOL.js +0 -110
- package/chunks/nonInteractiveCli-JXKL343Q.js +0 -185
- package/chunks/pidfile-QOIQZFT2.js +0 -111
- package/chunks/prompt-terminal-ledger-FOMFTYOM.js +0 -105
- package/chunks/resumeHistoryUtils-NSGF3UCB.js +0 -118
- package/chunks/ripGrep-4CAT6SKV.js +0 -39
- package/chunks/scheduled-tasks-MN2ZZ5P6.js +0 -127
- package/chunks/serve-2XCHPPGG.js +0 -118
- package/chunks/skill-settings-ZL4JY5UE.js +0 -118
- package/chunks/spawnChannel-ZST6XJVJ.js +0 -112
- package/chunks/standalone-update-THVU3OKY.js +0 -118
- package/chunks/terminal-image-renderer-KS25G33E.js +0 -114
- package/chunks/theme-manager-YMZNG45F.js +0 -102
- package/chunks/total-session-admission-PVN64JVV.js +0 -114
- package/chunks/trustedFolders-FATSC4YI.js +0 -122
- package/chunks/updateCheck-D3YG2WCD.js +0 -118
- package/chunks/useAutoAcceptIndicator-ILINOSAS.js +0 -120
- package/chunks/workspace-providers-status-IJ4VHFMB.js +0 -114
- package/chunks/workspace-registry-BTGZIMPK.js +0 -123
- package/chunks/workspace-service-SIN67ITC.js +0 -126
- package/chunks/workspace-skills-status-F3RKCUIX.js +0 -113
- package/chunks/write-file-PAIGB33C.js +0 -88
- package/web-shell/assets/channel-CXjVLaBa.js +0 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-DANEijO3.js +0 -1
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-DANEijO3.js +0 -1
- package/web-shell/assets/index-Ci-z4zWY.js +0 -1913
- package/web-shell/assets/index-LDlXZRHA.css +0 -36
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DNKPyrDc.js +0 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-ZL1HPC6w.js +0 -8
- /package/chunks/{chunk-FOGQO4FG.js → chunk-JA5CBKRP.js} +0 -0
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
isSymlinkedRoot,
|
|
5
5
|
resolveSavedWorkflowScript,
|
|
6
6
|
writeWorkflowSnapshot
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-I2TMJPCV.js";
|
|
8
8
|
import {
|
|
9
9
|
AgentEventEmitter,
|
|
10
10
|
attachJsonlTranscriptWriter,
|
|
@@ -13,109 +13,112 @@ import {
|
|
|
13
13
|
deriveConfig,
|
|
14
14
|
deriveWorktreeConfig,
|
|
15
15
|
getRuleDisplayName,
|
|
16
|
+
getWorkflowTaskMutationKey,
|
|
17
|
+
installSessionWorkflowRevisionWriteThrough,
|
|
16
18
|
isTerminalWorkflowStatus,
|
|
17
19
|
rebuildToolRegistryOnOverride,
|
|
18
20
|
resolveExternalWorktreeDir,
|
|
19
21
|
resolveToolName,
|
|
20
|
-
toModelVisibleSubagentResult
|
|
21
|
-
|
|
22
|
+
toModelVisibleSubagentResult,
|
|
23
|
+
tryWithWorkflowTaskMutation
|
|
24
|
+
} from "./chunk-4F7GQGXB.js";
|
|
22
25
|
import "./chunk-GOFAQQZA.js";
|
|
23
26
|
import "./chunk-5M6IDOMF.js";
|
|
27
|
+
import "./chunk-6HUXPLB5.js";
|
|
24
28
|
import "./chunk-TWPJO254.js";
|
|
25
29
|
import "./chunk-CQ35AJ4Z.js";
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-
|
|
29
|
-
import
|
|
30
|
+
import "./chunk-NSUKQ4DN.js";
|
|
31
|
+
import "./chunk-DQCKVAF5.js";
|
|
32
|
+
import "./chunk-AI35S34R.js";
|
|
33
|
+
import {
|
|
34
|
+
GitWorktreeService,
|
|
35
|
+
generateAgentWorktreeSlug,
|
|
36
|
+
writeWorktreeSessionMarker
|
|
37
|
+
} from "./chunk-KM3XVTMO.js";
|
|
30
38
|
import {
|
|
31
39
|
parsePositiveIntegerEnv
|
|
32
40
|
} from "./chunk-6PVPNMXU.js";
|
|
33
|
-
import "./chunk-
|
|
34
|
-
import "./chunk-
|
|
41
|
+
import "./chunk-OKTNXDVO.js";
|
|
42
|
+
import "./chunk-EFTPIZIC.js";
|
|
35
43
|
import "./chunk-IRH27ZC2.js";
|
|
36
44
|
import "./chunk-QHWCP53L.js";
|
|
37
|
-
import "./chunk-
|
|
45
|
+
import "./chunk-UJ4DUYIH.js";
|
|
46
|
+
import "./chunk-QJNDUTOL.js";
|
|
38
47
|
import "./chunk-O6GEWCJA.js";
|
|
39
|
-
import "./chunk-
|
|
40
|
-
import
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
import "./chunk-
|
|
46
|
-
import "./chunk-
|
|
47
|
-
import "./chunk-
|
|
48
|
-
import "./chunk-
|
|
49
|
-
import "./chunk-
|
|
50
|
-
import "./chunk-JWALNCLT.js";
|
|
51
|
-
import "./chunk-NIFYWDYN.js";
|
|
52
|
-
import "./chunk-C2X7KY45.js";
|
|
53
|
-
import "./chunk-JHYH6PYQ.js";
|
|
54
|
-
import "./chunk-7J6OTNGO.js";
|
|
48
|
+
import "./chunk-OSSTATJF.js";
|
|
49
|
+
import "./chunk-ZHO2CW6D.js";
|
|
50
|
+
import "./chunk-CVX63TFJ.js";
|
|
51
|
+
import "./chunk-373DQUVA.js";
|
|
52
|
+
import "./chunk-H43PSPYS.js";
|
|
53
|
+
import "./chunk-U6D2PPMN.js";
|
|
54
|
+
import "./chunk-VYIUNFEA.js";
|
|
55
|
+
import "./chunk-KGV55H53.js";
|
|
56
|
+
import "./chunk-7TBU7PU2.js";
|
|
57
|
+
import "./chunk-E4JNFXNI.js";
|
|
58
|
+
import "./chunk-CHEIIBT3.js";
|
|
55
59
|
import {
|
|
56
60
|
SUBAGENT_PLAN_LIFECYCLE_TOOLS
|
|
57
|
-
} from "./chunk-
|
|
61
|
+
} from "./chunk-TJYRTS4S.js";
|
|
62
|
+
import "./chunk-JX6XHPTX.js";
|
|
58
63
|
import "./chunk-MLXTMF7H.js";
|
|
59
|
-
import "./chunk-NAVJD2PQ.js";
|
|
60
|
-
import "./chunk-B466ZSHZ.js";
|
|
61
|
-
import "./chunk-4QHPPXK2.js";
|
|
62
|
-
import "./chunk-QHMLYMMS.js";
|
|
63
|
-
import "./chunk-3WK3QDNV.js";
|
|
64
64
|
import "./chunk-PQEISIKS.js";
|
|
65
|
-
import "./chunk-
|
|
65
|
+
import "./chunk-FD5SJOWT.js";
|
|
66
66
|
import {
|
|
67
67
|
runWithAgentContext
|
|
68
|
-
} from "./chunk-
|
|
68
|
+
} from "./chunk-4LIFGNI4.js";
|
|
69
69
|
import "./chunk-S6LOFUVP.js";
|
|
70
|
+
import "./chunk-NAVJD2PQ.js";
|
|
71
|
+
import "./chunk-KFN2IZYR.js";
|
|
72
|
+
import "./chunk-GB4UKWY5.js";
|
|
73
|
+
import "./chunk-QHMLYMMS.js";
|
|
70
74
|
import "./chunk-CFKIH3D3.js";
|
|
71
75
|
import "./chunk-2LD5U7Q3.js";
|
|
72
76
|
import {
|
|
73
77
|
createAbortController,
|
|
74
78
|
createChildAbortController
|
|
75
79
|
} from "./chunk-DJ2GSRLV.js";
|
|
76
|
-
import "./chunk-
|
|
77
|
-
import "./chunk-
|
|
80
|
+
import "./chunk-S2T7H5MI.js";
|
|
81
|
+
import "./chunk-LKODFJRD.js";
|
|
82
|
+
import "./chunk-LB3WQQJK.js";
|
|
78
83
|
import {
|
|
79
84
|
WorkflowRunEvent,
|
|
80
85
|
logWorkflowRun,
|
|
81
86
|
read,
|
|
82
87
|
writeLine
|
|
83
|
-
} from "./chunk-
|
|
88
|
+
} from "./chunk-GH2S4GD5.js";
|
|
84
89
|
import "./chunk-XBVNNDPK.js";
|
|
85
90
|
import "./chunk-VGC4I5JJ.js";
|
|
86
91
|
import {
|
|
87
92
|
isWithinRoot
|
|
88
|
-
} from "./chunk-
|
|
89
|
-
import "./chunk-
|
|
90
|
-
import "./chunk-BWORX6FA.js";
|
|
93
|
+
} from "./chunk-DYTW3QVG.js";
|
|
94
|
+
import "./chunk-HT5S5TRQ.js";
|
|
91
95
|
import "./chunk-WZAD4ZNJ.js";
|
|
92
96
|
import "./chunk-FPGTNKCP.js";
|
|
93
|
-
import "./chunk-
|
|
94
|
-
import "./chunk-
|
|
95
|
-
import "./chunk-
|
|
96
|
-
import "./chunk-
|
|
97
|
-
import "./chunk-PPKZ7JOE.js";
|
|
97
|
+
import "./chunk-EIJT2PQ6.js";
|
|
98
|
+
import "./chunk-BFY33IB4.js";
|
|
99
|
+
import "./chunk-KHP66DFN.js";
|
|
100
|
+
import "./chunk-22UH7VTP.js";
|
|
98
101
|
import "./chunk-HHJLM3WQ.js";
|
|
99
102
|
import {
|
|
100
103
|
stripAnsiAndControl
|
|
101
|
-
} from "./chunk-
|
|
104
|
+
} from "./chunk-QKDNS6FU.js";
|
|
102
105
|
import "./chunk-74TONY4F.js";
|
|
103
106
|
import {
|
|
104
107
|
SyntheticOutputTool
|
|
105
|
-
} from "./chunk-
|
|
106
|
-
import "./chunk-
|
|
107
|
-
import "./chunk-
|
|
108
|
+
} from "./chunk-ZDFQGHZH.js";
|
|
109
|
+
import "./chunk-G7HBEEX7.js";
|
|
110
|
+
import "./chunk-QQD2GART.js";
|
|
108
111
|
import "./chunk-AQ37AY7B.js";
|
|
109
|
-
import "./chunk-
|
|
112
|
+
import "./chunk-ODZF64DM.js";
|
|
110
113
|
import {
|
|
111
114
|
BaseDeclarativeTool,
|
|
112
115
|
BaseToolInvocation,
|
|
113
116
|
ToolDisplayNames,
|
|
114
117
|
ToolNames
|
|
115
|
-
} from "./chunk-
|
|
118
|
+
} from "./chunk-7JMGTOH7.js";
|
|
116
119
|
import {
|
|
117
120
|
createDebugLogger
|
|
118
|
-
} from "./chunk-
|
|
121
|
+
} from "./chunk-EAHOJF6V.js";
|
|
119
122
|
import "./chunk-75DOP5OR.js";
|
|
120
123
|
import "./chunk-DMTGGOSA.js";
|
|
121
124
|
import "./chunk-YQ3U5MUC.js";
|
|
@@ -544,6 +547,12 @@ function compileWorkflowScript(scriptSource) {
|
|
|
544
547
|
return { script, meta };
|
|
545
548
|
}
|
|
546
549
|
__name(compileWorkflowScript, "compileWorkflowScript");
|
|
550
|
+
function workflowCancelledError() {
|
|
551
|
+
const error = new Error("Workflow run was aborted (cancelled).");
|
|
552
|
+
error.name = "AbortError";
|
|
553
|
+
return error;
|
|
554
|
+
}
|
|
555
|
+
__name(workflowCancelledError, "workflowCancelledError");
|
|
547
556
|
var COMPILE_ERROR_LINE_WIDTH = 80;
|
|
548
557
|
function describeWorkflowCompileError(error, authorLineCount) {
|
|
549
558
|
const err = error instanceof Error ? error : new Error(String(error));
|
|
@@ -1630,16 +1639,22 @@ function createWorkflowSandbox(opts) {
|
|
|
1630
1639
|
let watchdog;
|
|
1631
1640
|
let stopWatchingState;
|
|
1632
1641
|
let rearmWatchdogOnAbort;
|
|
1642
|
+
let settleOnAbort;
|
|
1643
|
+
let wallClockFired = false;
|
|
1633
1644
|
process.on("unhandledRejection", adoptionEscapeHook);
|
|
1634
1645
|
try {
|
|
1635
1646
|
const { script, meta } = compileWorkflowScript(scriptSource);
|
|
1636
1647
|
extractedMeta = meta;
|
|
1648
|
+
if (opts.abortOnTimeout?.signal.aborted) {
|
|
1649
|
+
throw workflowCancelledError();
|
|
1650
|
+
}
|
|
1637
1651
|
const runOpts = {
|
|
1638
1652
|
timeout: 3e4
|
|
1639
1653
|
};
|
|
1640
1654
|
const result = script.runInContext(ctx, runOpts);
|
|
1641
1655
|
const timeoutPromise = new Promise((_, reject) => {
|
|
1642
1656
|
watchdog = new WallClockWatchdog(maxWallClockMs, () => {
|
|
1657
|
+
wallClockFired = true;
|
|
1643
1658
|
opts.abortOnTimeout?.abort();
|
|
1644
1659
|
reject(
|
|
1645
1660
|
new Error(
|
|
@@ -1662,7 +1677,15 @@ function createWorkflowSandbox(opts) {
|
|
|
1662
1677
|
rearmWatchdogOnAbort,
|
|
1663
1678
|
{ once: true }
|
|
1664
1679
|
);
|
|
1665
|
-
|
|
1680
|
+
const abortPromise = new Promise((_, reject) => {
|
|
1681
|
+
const signal = opts.abortOnTimeout?.signal;
|
|
1682
|
+
if (!signal) return;
|
|
1683
|
+
settleOnAbort = /* @__PURE__ */ __name(() => {
|
|
1684
|
+
if (!wallClockFired) reject(workflowCancelledError());
|
|
1685
|
+
}, "settleOnAbort");
|
|
1686
|
+
signal.addEventListener("abort", settleOnAbort, { once: true });
|
|
1687
|
+
});
|
|
1688
|
+
return await Promise.race([result, timeoutPromise, abortPromise]);
|
|
1666
1689
|
} finally {
|
|
1667
1690
|
if (rearmWatchdogOnAbort) {
|
|
1668
1691
|
opts.abortOnTimeout?.signal.removeEventListener(
|
|
@@ -1670,6 +1693,12 @@ function createWorkflowSandbox(opts) {
|
|
|
1670
1693
|
rearmWatchdogOnAbort
|
|
1671
1694
|
);
|
|
1672
1695
|
}
|
|
1696
|
+
if (settleOnAbort) {
|
|
1697
|
+
opts.abortOnTimeout?.signal.removeEventListener(
|
|
1698
|
+
"abort",
|
|
1699
|
+
settleOnAbort
|
|
1700
|
+
);
|
|
1701
|
+
}
|
|
1673
1702
|
stopWatchingState?.();
|
|
1674
1703
|
watchdog?.stop();
|
|
1675
1704
|
await flushUnconsumedRejections();
|
|
@@ -2163,7 +2192,7 @@ function resolveMaxAgentsPerRun(env = process.env) {
|
|
|
2163
2192
|
__name(resolveMaxAgentsPerRun, "resolveMaxAgentsPerRun");
|
|
2164
2193
|
var MAX_WORKFLOW_CONCURRENCY_ENV = "QWEN_CODE_MAX_WORKFLOW_CONCURRENCY";
|
|
2165
2194
|
var HARD_MAX_CONCURRENCY_CEILING = 64;
|
|
2166
|
-
function resolveConcurrencyLimit(env = process.env) {
|
|
2195
|
+
function resolveConcurrencyLimit(env = process.env, availableParallelism2 = os.availableParallelism) {
|
|
2167
2196
|
const raw = env[MAX_WORKFLOW_CONCURRENCY_ENV];
|
|
2168
2197
|
if (raw !== void 0 && raw.trim() !== "") {
|
|
2169
2198
|
const parsed = parsePositiveIntegerEnv(raw, 0);
|
|
@@ -2180,7 +2209,7 @@ function resolveConcurrencyLimit(env = process.env) {
|
|
|
2180
2209
|
`Invalid ${MAX_WORKFLOW_CONCURRENCY_ENV}=${JSON.stringify(raw)}, using cpu-derived default`
|
|
2181
2210
|
);
|
|
2182
2211
|
}
|
|
2183
|
-
return Math.max(
|
|
2212
|
+
return Math.max(2, Math.min(16, availableParallelism2() - 2));
|
|
2184
2213
|
}
|
|
2185
2214
|
__name(resolveConcurrencyLimit, "resolveConcurrencyLimit");
|
|
2186
2215
|
var DEFAULT_WORKFLOW_SUBAGENT_MAX_TURNS = 50;
|
|
@@ -2351,7 +2380,7 @@ function attachDispatchTranscript(config, agentId, prompt, agentName, emitter, a
|
|
|
2351
2380
|
}
|
|
2352
2381
|
__name(attachDispatchTranscript, "attachDispatchTranscript");
|
|
2353
2382
|
async function runSingleDispatch(config, prompt, opts, attemptSignal, emitter, workflowAgentId, agentIdentity, onTokens) {
|
|
2354
|
-
const { AgentHeadless, ContextState } = await import("./agent-headless-
|
|
2383
|
+
const { AgentHeadless, ContextState } = await import("./agent-headless-OC2IB55D.js");
|
|
2355
2384
|
const ctx = new ContextState();
|
|
2356
2385
|
ctx.set("task_prompt", prompt);
|
|
2357
2386
|
debugLogger.debug(`[workflow] Dispatch ${workflowAgentId}`);
|
|
@@ -2482,6 +2511,7 @@ ${WORKFLOW_SUBAGENT_SYSTEM_PROMPT_WITH_SCHEMA}` : WORKFLOW_SUBAGENT_SYSTEM_PROMP
|
|
|
2482
2511
|
effectiveContext = deriveWorktreeConfig(config, worktreeIsolation.path, {
|
|
2483
2512
|
customIgnoreFiles: config.getFileFilteringOptions().customIgnoreFiles
|
|
2484
2513
|
});
|
|
2514
|
+
installSessionWorkflowRevisionWriteThrough(effectiveContext, config);
|
|
2485
2515
|
} else if (opts.workingDir !== void 0) {
|
|
2486
2516
|
if (typeof opts.workingDir !== "string" || opts.workingDir.trim().length === 0) {
|
|
2487
2517
|
throw new Error(
|
|
@@ -2501,6 +2531,7 @@ ${WORKFLOW_SUBAGENT_SYSTEM_PROMPT_WITH_SCHEMA}` : WORKFLOW_SUBAGENT_SYSTEM_PROMP
|
|
|
2501
2531
|
effectiveContext = deriveWorktreeConfig(config, resolved.path, {
|
|
2502
2532
|
customIgnoreFiles: config.getFileFilteringOptions().customIgnoreFiles
|
|
2503
2533
|
});
|
|
2534
|
+
installSessionWorkflowRevisionWriteThrough(effectiveContext, config);
|
|
2504
2535
|
}
|
|
2505
2536
|
if (effectiveContext !== config) {
|
|
2506
2537
|
const approvalHandle = deriveApprovalModeConfig(
|
|
@@ -2794,6 +2825,7 @@ function attachSchemaListeners(emitter, state) {
|
|
|
2794
2825
|
__name(attachSchemaListeners, "attachSchemaListeners");
|
|
2795
2826
|
async function createSchemaConfigOverride(base, schema) {
|
|
2796
2827
|
const override = deriveConfig(base);
|
|
2828
|
+
installSessionWorkflowRevisionWriteThrough(override, base);
|
|
2797
2829
|
await rebuildToolRegistryOnOverride(override, base);
|
|
2798
2830
|
const registry = override.getToolRegistry();
|
|
2799
2831
|
registry.registerTool(new SyntheticOutputTool(schema));
|
|
@@ -3258,74 +3290,111 @@ Workflow scripts must be plain JavaScript \u2014 the usual causes are TypeScript
|
|
|
3258
3290
|
__name(this, "WorkflowScriptNotLaunchedError");
|
|
3259
3291
|
}
|
|
3260
3292
|
};
|
|
3293
|
+
var WorkflowStartCancelledError = class extends Error {
|
|
3294
|
+
static {
|
|
3295
|
+
__name(this, "WorkflowStartCancelledError");
|
|
3296
|
+
}
|
|
3297
|
+
constructor() {
|
|
3298
|
+
super("Workflow start was cancelled.");
|
|
3299
|
+
this.name = "WorkflowStartCancelledError";
|
|
3300
|
+
}
|
|
3301
|
+
};
|
|
3261
3302
|
var WorkflowRunner = class {
|
|
3262
3303
|
static {
|
|
3263
3304
|
__name(this, "WorkflowRunner");
|
|
3264
3305
|
}
|
|
3265
3306
|
static async start(options) {
|
|
3307
|
+
if (options.resumeFromRunId) {
|
|
3308
|
+
const attempt = await tryWithWorkflowTaskMutation(
|
|
3309
|
+
getWorkflowTaskMutationKey(options.config, options.resumeFromRunId),
|
|
3310
|
+
() => this.startClaimed(options)
|
|
3311
|
+
);
|
|
3312
|
+
if (!attempt.acquired) {
|
|
3313
|
+
throw new Error(
|
|
3314
|
+
`Workflow run ${options.resumeFromRunId} is already being modified.`
|
|
3315
|
+
);
|
|
3316
|
+
}
|
|
3317
|
+
return attempt.value;
|
|
3318
|
+
}
|
|
3319
|
+
return this.startClaimed(options);
|
|
3320
|
+
}
|
|
3321
|
+
static async startClaimed(options) {
|
|
3266
3322
|
const config = options.config;
|
|
3267
3323
|
const runInBackground = options.runInBackground === true;
|
|
3268
3324
|
const budget = WorkflowBudgetImpl.fromEnv();
|
|
3269
|
-
const loaded = options.scriptPath && options.script === void 0 ? await resolveSavedWorkflowScript(
|
|
3270
|
-
{ scriptPath: options.scriptPath },
|
|
3271
|
-
config
|
|
3272
|
-
) : void 0;
|
|
3273
|
-
const script = loaded?.script ?? options.script ?? "";
|
|
3274
|
-
const scriptPath = loaded?.scriptPath ?? options.scriptPath;
|
|
3275
|
-
try {
|
|
3276
|
-
compileWorkflowScript(script);
|
|
3277
|
-
} catch (error) {
|
|
3278
|
-
throw new WorkflowScriptNotLaunchedError(
|
|
3279
|
-
describeWorkflowCompileError(
|
|
3280
|
-
error,
|
|
3281
|
-
script.split(/\r\n|[\n\r\u2028\u2029]/).length
|
|
3282
|
-
)
|
|
3283
|
-
);
|
|
3284
|
-
}
|
|
3285
3325
|
const runId = options.resumeFromRunId ?? `wf_${randomBytes2(8).toString("hex")}`;
|
|
3286
|
-
const storage = config.storage;
|
|
3287
|
-
const journal = storage ? new WorkflowJournal(storage.getWorkflowRunJournalPath(runId)) : void 0;
|
|
3288
|
-
const resumeReplay = options.resumeFromRunId ? await journal?.load() : void 0;
|
|
3289
|
-
if (runInBackground && options.signal.aborted) {
|
|
3290
|
-
throw new Error("Background workflow start was cancelled.");
|
|
3291
|
-
}
|
|
3292
|
-
const callerWasAbortedBeforeStart = options.signal.aborted;
|
|
3293
3326
|
const registry = config.getWorkflowRunRegistry?.();
|
|
3294
3327
|
let entry;
|
|
3295
3328
|
const isCurrentEntry = /* @__PURE__ */ __name(() => registry === void 0 || entry !== void 0 && registry.get(runId) === entry, "isCurrentEntry");
|
|
3296
|
-
const
|
|
3297
|
-
const
|
|
3298
|
-
|
|
3299
|
-
|
|
3300
|
-
|
|
3301
|
-
|
|
3302
|
-
|
|
3303
|
-
|
|
3304
|
-
|
|
3305
|
-
entry
|
|
3306
|
-
) : () => void 0 : void 0
|
|
3307
|
-
);
|
|
3308
|
-
const orchestrator = new WorkflowOrchestrator(dispatch);
|
|
3329
|
+
const createController = /* @__PURE__ */ __name(() => runInBackground ? createAbortController() : createChildAbortController(options.signal), "createController");
|
|
3330
|
+
const controller = registry ? registry.reserveStart(runId, createController) : createController();
|
|
3331
|
+
const storage = config.storage;
|
|
3332
|
+
const journal = storage ? new WorkflowJournal(storage.getWorkflowRunJournalPath(runId)) : void 0;
|
|
3333
|
+
let script;
|
|
3334
|
+
let scriptPath;
|
|
3335
|
+
let resumeReplay;
|
|
3336
|
+
let callerWasAbortedBeforeStart;
|
|
3337
|
+
let orchestrator;
|
|
3309
3338
|
try {
|
|
3310
|
-
|
|
3311
|
-
|
|
3312
|
-
|
|
3313
|
-
|
|
3314
|
-
|
|
3315
|
-
|
|
3316
|
-
|
|
3317
|
-
|
|
3318
|
-
|
|
3319
|
-
|
|
3320
|
-
|
|
3321
|
-
|
|
3322
|
-
|
|
3323
|
-
|
|
3324
|
-
|
|
3325
|
-
|
|
3326
|
-
|
|
3327
|
-
|
|
3339
|
+
const loaded = options.scriptPath && options.script === void 0 ? await resolveSavedWorkflowScript(
|
|
3340
|
+
{ scriptPath: options.scriptPath },
|
|
3341
|
+
config
|
|
3342
|
+
) : void 0;
|
|
3343
|
+
script = loaded?.script ?? options.script ?? "";
|
|
3344
|
+
scriptPath = loaded?.scriptPath ?? options.scriptPath;
|
|
3345
|
+
try {
|
|
3346
|
+
compileWorkflowScript(script);
|
|
3347
|
+
} catch (error) {
|
|
3348
|
+
throw new WorkflowScriptNotLaunchedError(
|
|
3349
|
+
describeWorkflowCompileError(
|
|
3350
|
+
error,
|
|
3351
|
+
script.split(/\r\n|[\n\r\u2028\u2029]/).length
|
|
3352
|
+
)
|
|
3353
|
+
);
|
|
3354
|
+
}
|
|
3355
|
+
resumeReplay = options.resumeFromRunId ? await journal?.load() : void 0;
|
|
3356
|
+
if (controller.signal.aborted && !options.signal.aborted) {
|
|
3357
|
+
throw new WorkflowStartCancelledError();
|
|
3358
|
+
}
|
|
3359
|
+
if (runInBackground && options.signal.aborted) {
|
|
3360
|
+
throw new WorkflowStartCancelledError();
|
|
3361
|
+
}
|
|
3362
|
+
callerWasAbortedBeforeStart = options.signal.aborted;
|
|
3363
|
+
const dispatch = options.dispatch ?? createProductionDispatch(
|
|
3364
|
+
config,
|
|
3365
|
+
controller.signal,
|
|
3366
|
+
(outputTokens) => budget.recordSpent(outputTokens),
|
|
3367
|
+
registry ? (emitter2, dispatchId) => isCurrentEntry() ? registry.bridgeApprovalEvents(
|
|
3368
|
+
runId,
|
|
3369
|
+
emitter2,
|
|
3370
|
+
dispatchId,
|
|
3371
|
+
entry
|
|
3372
|
+
) : () => void 0 : void 0
|
|
3373
|
+
);
|
|
3374
|
+
orchestrator = new WorkflowOrchestrator(dispatch);
|
|
3375
|
+
entry = registry?.register(
|
|
3376
|
+
{
|
|
3377
|
+
runId,
|
|
3378
|
+
toolUseId: options.toolUseId,
|
|
3379
|
+
meta: null,
|
|
3380
|
+
status: "running",
|
|
3381
|
+
startTime: Date.now(),
|
|
3382
|
+
outputFile: "",
|
|
3383
|
+
abortController: controller,
|
|
3384
|
+
tokenBudgetTotal: budget.total,
|
|
3385
|
+
script,
|
|
3386
|
+
scriptPath,
|
|
3387
|
+
args: options.args,
|
|
3388
|
+
...options.resumeFromRunId ? {
|
|
3389
|
+
sourceRunId: options.resumeFromRunId,
|
|
3390
|
+
startMode: "retry"
|
|
3391
|
+
} : {},
|
|
3392
|
+
isBackgrounded: runInBackground
|
|
3393
|
+
},
|
|
3394
|
+
controller
|
|
3395
|
+
);
|
|
3328
3396
|
} catch (error) {
|
|
3397
|
+
registry?.releaseStart(runId, controller);
|
|
3329
3398
|
controller.abort();
|
|
3330
3399
|
throw error;
|
|
3331
3400
|
}
|
|
@@ -3432,7 +3501,14 @@ var WorkflowRunner = class {
|
|
|
3432
3501
|
const message = extractErrorMessage2(error);
|
|
3433
3502
|
if (entry && details?.meta && !entry.meta) entry.meta = details.meta;
|
|
3434
3503
|
if (details?.logs) registry?.setRecentLogs(runId, details.logs);
|
|
3435
|
-
if (
|
|
3504
|
+
if (entry && isTerminalWorkflowStatus(entry.status)) {
|
|
3505
|
+
return {
|
|
3506
|
+
ok: false,
|
|
3507
|
+
message: entry.status === "cancelled" ? "Workflow run cancelled." : entry.error ?? message,
|
|
3508
|
+
details
|
|
3509
|
+
};
|
|
3510
|
+
}
|
|
3511
|
+
if (callerWasAbortedBeforeStart || !runInBackground && options.signal.aborted) {
|
|
3436
3512
|
registry?.cancel(runId, Date.now());
|
|
3437
3513
|
} else {
|
|
3438
3514
|
registry?.fail(runId, message, Date.now());
|
|
@@ -3449,7 +3525,13 @@ var WorkflowRunner = class {
|
|
|
3449
3525
|
tokens_spent: entry.tokensSpent,
|
|
3450
3526
|
duration_ms: (entry.endTime ?? entry.startTime) - entry.startTime
|
|
3451
3527
|
});
|
|
3452
|
-
await writeWorkflowSnapshot(
|
|
3528
|
+
const snapshotPersisted = await writeWorkflowSnapshot(
|
|
3529
|
+
config,
|
|
3530
|
+
entry
|
|
3531
|
+
);
|
|
3532
|
+
if (snapshotPersisted) {
|
|
3533
|
+
registry?.notifySnapshotPersisted(entry.runId);
|
|
3534
|
+
}
|
|
3453
3535
|
await journal?.drain();
|
|
3454
3536
|
try {
|
|
3455
3537
|
logWorkflowRun(config, telemetryEvent);
|
|
@@ -3482,7 +3564,7 @@ var WORKFLOW_PARAM_SCHEMA = {
|
|
|
3482
3564
|
properties: {
|
|
3483
3565
|
script: {
|
|
3484
3566
|
type: "string",
|
|
3485
|
-
description: `JavaScript source of the workflow. Wrapped as an async IIFE. May call the injected globals \`phase(title)\`, \`log(msg)\`, \`agent(prompt, opts?)\`, and read \`args\`. agent() opts: \`{ label?, phase?, schema?, model?, agentType?, isolation?, workingDir?, stallMs? }\`. \`schema\` (JSON Schema object): the subagent must deliver its result by calling \`structured_output\` with arguments matching the schema; agent() resolves to the validated object. Two failed attempts produce a terminal error "subagent completed without calling StructuredOutput (after 2 in-conversation nudges)". \`agentType\` (string): resolves against the declarative-agents registry (\`.qwen/agents/<name>.md\`, project then user then built-in). Unresolved names throw "agent({agentType}): agent type 'X' not found". \`model\` (string): per-call model override; routes provider correctly via the subagent runtime view. \`isolation\`: \`'worktree'\` provisions a fresh git worktree under \`<projectRoot>/.qwen/worktrees/agent-<7hex>\`; the worktree is auto-removed if no changes, otherwise the path and branch are returned alongside the result. \`'remote'\` throws "agent({isolation:'remote'}) is not available in this build" (parity with upstream). isolation=worktree refuses to run when the parent working tree has uncommitted changes (the subagent would see a stale HEAD). \`workingDir\` (string): pin the subagent to an EXISTING git worktree of this repository that the caller owns \u2014 nothing is created and nothing is removed. Use it when the directory the agent must work in already exists and its uncommitted state is the point (a review worktree, a checkout a previous step provisioned) \u2014 exactly the case isolation cannot serve. Mutually exclusive with \`isolation\`. The path must be a linked worktree of this repository registered via \`git worktree add\` (it may live anywhere on disk) \u2014 the main checkout is not eligible. \`stallMs\` (number, ms): a no-progress watchdog, not a wall-clock cap. The dispatch is aborted and retried (up to ${MAX_STALL_ATTEMPTS} attempts total) after this many milliseconds with no observable subagent progress \u2014 including before the first response arrives; the timer is suspended while a tool is in flight, so a legitimately slow tool is not a stall. Default ${DEFAULT_STALL_MS} (override via \`${MAX_WORKFLOW_STALL_MS_ENV}\`, whole seconds); \`0\` disables the watchdog. Wall time per attempt is bounded separately. Workflow subagents always have SendMessage / Monitor / EnterPlanMode / ExitPlanMode in their disallowed-tool floor regardless of agentType. Concurrency: \`parallel([() => agent(...), ...])\` runs thunks through a shared per-run window (default \`max(
|
|
3567
|
+
description: `JavaScript source of the workflow. Wrapped as an async IIFE. May call the injected globals \`phase(title)\`, \`log(msg)\`, \`agent(prompt, opts?)\`, and read \`args\`. agent() opts: \`{ label?, phase?, schema?, model?, agentType?, isolation?, workingDir?, stallMs? }\`. \`schema\` (JSON Schema object): the subagent must deliver its result by calling \`structured_output\` with arguments matching the schema; agent() resolves to the validated object. Two failed attempts produce a terminal error "subagent completed without calling StructuredOutput (after 2 in-conversation nudges)". \`agentType\` (string): resolves against the declarative-agents registry (\`.qwen/agents/<name>.md\`, project then user then built-in). Unresolved names throw "agent({agentType}): agent type 'X' not found". \`model\` (string): per-call model override; routes provider correctly via the subagent runtime view. \`isolation\`: \`'worktree'\` provisions a fresh git worktree under \`<projectRoot>/.qwen/worktrees/agent-<7hex>\`; the worktree is auto-removed if no changes, otherwise the path and branch are returned alongside the result. \`'remote'\` throws "agent({isolation:'remote'}) is not available in this build" (parity with upstream). isolation=worktree refuses to run when the parent working tree has uncommitted changes (the subagent would see a stale HEAD). \`workingDir\` (string): pin the subagent to an EXISTING git worktree of this repository that the caller owns \u2014 nothing is created and nothing is removed. Use it when the directory the agent must work in already exists and its uncommitted state is the point (a review worktree, a checkout a previous step provisioned) \u2014 exactly the case isolation cannot serve. Mutually exclusive with \`isolation\`. The path must be a linked worktree of this repository registered via \`git worktree add\` (it may live anywhere on disk) \u2014 the main checkout is not eligible. \`stallMs\` (number, ms): a no-progress watchdog, not a wall-clock cap. The dispatch is aborted and retried (up to ${MAX_STALL_ATTEMPTS} attempts total) after this many milliseconds with no observable subagent progress \u2014 including before the first response arrives; the timer is suspended while a tool is in flight, so a legitimately slow tool is not a stall. Default ${DEFAULT_STALL_MS} (override via \`${MAX_WORKFLOW_STALL_MS_ENV}\`, whole seconds); \`0\` disables the watchdog. Wall time per attempt is bounded separately. Workflow subagents always have SendMessage / Monitor / EnterPlanMode / ExitPlanMode in their disallowed-tool floor regardless of agentType. Concurrency: \`parallel([() => agent(...), ...])\` runs thunks through a shared per-run window (default \`max(2, min(16, cpus-2))\` agents in flight; override via \`${MAX_WORKFLOW_CONCURRENCY_ENV}\`) and resolves to a position-aligned array \u2014 a thunk that throws, or resolves to a non-JSON-serializable value, becomes \`null\` at its index (errors-as-data); parallel() itself rejects only on invalid arguments or abort. \`pipeline(items, ...stages)\` runs each item through the stages (staggered, no inter-stage barrier); a stage that throws, returns \`null\`, or returns a non-JSON-serializable value drops that item to \`null\`. Pass THUNKS to parallel, not eager calls: \`parallel([() => agent(...)])\`, not \`parallel([agent(...)])\`. At most ${DEFAULT_MAX_AGENTS_PER_RUN} agent() calls per run (override via \`${MAX_WORKFLOW_AGENTS_ENV}\`). \`Date.now()\` and \`Math.random()\` both throw \u2014 workflow scripts must be deterministic for resume. \`export const meta = {...}\` declarations are stripped before execution.`
|
|
3486
3568
|
},
|
|
3487
3569
|
scriptPath: {
|
|
3488
3570
|
type: "string",
|
|
@@ -3610,7 +3692,7 @@ var WorkflowToolInvocation = class extends BaseToolInvocation {
|
|
|
3610
3692
|
async execute(signal, updateOutput, _shellExecutionConfig) {
|
|
3611
3693
|
const runInBackground = this.params.run_in_background === true;
|
|
3612
3694
|
if (runInBackground && signal.aborted) {
|
|
3613
|
-
return
|
|
3695
|
+
return startCancelledResult();
|
|
3614
3696
|
}
|
|
3615
3697
|
let handle;
|
|
3616
3698
|
try {
|
|
@@ -3627,8 +3709,8 @@ var WorkflowToolInvocation = class extends BaseToolInvocation {
|
|
|
3627
3709
|
onUpdate: !runInBackground && updateOutput ? (entry) => safeEmitUpdate(updateOutput, entry) : void 0
|
|
3628
3710
|
});
|
|
3629
3711
|
} catch (error) {
|
|
3630
|
-
if (runInBackground && signal.aborted) {
|
|
3631
|
-
return
|
|
3712
|
+
if (error instanceof WorkflowStartCancelledError || runInBackground && signal.aborted) {
|
|
3713
|
+
return startCancelledResult();
|
|
3632
3714
|
}
|
|
3633
3715
|
if (error instanceof WorkflowScriptNotLaunchedError) {
|
|
3634
3716
|
return {
|
|
@@ -3714,13 +3796,13 @@ ${safeStringifyDisplayPayload({
|
|
|
3714
3796
|
}
|
|
3715
3797
|
}
|
|
3716
3798
|
};
|
|
3717
|
-
function
|
|
3799
|
+
function startCancelledResult() {
|
|
3718
3800
|
return {
|
|
3719
3801
|
llmContent: "Workflow was cancelled before it could start.",
|
|
3720
3802
|
returnDisplay: "Workflow cancelled."
|
|
3721
3803
|
};
|
|
3722
3804
|
}
|
|
3723
|
-
__name(
|
|
3805
|
+
__name(startCancelledResult, "startCancelledResult");
|
|
3724
3806
|
function buildLivePhaseTreeDisplay(entry) {
|
|
3725
3807
|
const payload = {
|
|
3726
3808
|
runId: entry.runId,
|
|
@@ -3923,7 +4005,7 @@ Reach for one to be comprehensive (decompose the work and cover every part in pa
|
|
|
3923
4005
|
|
|
3924
4006
|
**Runtime** \u2014 see the \`script\` parameter for the detailed authoring contract.
|
|
3925
4007
|
|
|
3926
|
-
\`phase(title)\`, \`log(msg)\`, \`agent(prompt, opts?)\`, \`parallel(thunks)\`, \`pipeline(items, ...stages)\`, \`workflow(nameOrRef, args?)\`, plus the \`args\` and \`budget\` globals. \`workflow()\` runs a saved workflow inline under this run's caps and nests one level only \u2014 a workflow reached through \`workflow()\` cannot call \`workflow()\` itself, and doing so throws. Saved workflows are \`<name>.js\` files under \`<projectRoot>/.qwen/workflows\` (project scope, also surfaced as \`/<name>\` slash commands) or \`~/.qwen/workflows\` (user scope, lower precedence when both define the same name); \`workflow('<name>')\` resolves against those two directories, while \`scriptPath\` takes an absolute path to a script inside either of them or inside the generated-scripts root (\`$QWEN_CODE_PROJECT_DIR/workflows/generated\` \u2014 the per-project runtime dir, not the project tree \u2014 where a tool emitting a one-run script writes it; never a slash command, never resolvable by name); a path outside those roots is refused. Default \`max(
|
|
4008
|
+
\`phase(title)\`, \`log(msg)\`, \`agent(prompt, opts?)\`, \`parallel(thunks)\`, \`pipeline(items, ...stages)\`, \`workflow(nameOrRef, args?)\`, plus the \`args\` and \`budget\` globals. \`workflow()\` runs a saved workflow inline under this run's caps and nests one level only \u2014 a workflow reached through \`workflow()\` cannot call \`workflow()\` itself, and doing so throws. Saved workflows are \`<name>.js\` files under \`<projectRoot>/.qwen/workflows\` (project scope, also surfaced as \`/<name>\` slash commands) or \`~/.qwen/workflows\` (user scope, lower precedence when both define the same name); \`workflow('<name>')\` resolves against those two directories, while \`scriptPath\` takes an absolute path to a script inside either of them or inside the generated-scripts root (\`$QWEN_CODE_PROJECT_DIR/workflows/generated\` \u2014 the per-project runtime dir, not the project tree \u2014 where a tool emitting a one-run script writes it; never a slash command, never resolvable by name); a path outside those roots is refused. Default \`max(2, min(16, cpus-2))\` agents in flight per run (\`${MAX_WORKFLOW_CONCURRENCY_ENV}\`), up to ${DEFAULT_MAX_AGENTS_PER_RUN} agents total (\`${MAX_WORKFLOW_AGENTS_ENV}\`), under a 30-minute wall-clock cap per run (\`QWEN_CODE_MAX_WORKFLOW_SECONDS\`) \u2014 a fan-out near the agent cap will not fit inside the default cap. Each subagent attempt is separately capped at ${DEFAULT_WORKFLOW_SUBAGENT_MAX_TURNS} turns (\`${WORKFLOW_SUBAGENT_MAX_TURNS_ENV}\`) and ${DEFAULT_WORKFLOW_SUBAGENT_MAX_TIME_MINUTES} minutes (\`${WORKFLOW_SUBAGENT_MAX_MINUTES_ENV}\`) \u2014 an attempt that hits either becomes \`null\` in \`parallel()\`/\`pipeline()\`, indistinguishable from a missing agent, so raise them for legitimately long work. A per-run output-token cap may also be in effect: read \`budget.total\` (\`null\` = uncapped) before committing to a large fan-out, because once the cap is reached every further \`agent()\` call is refused \u2014 a bare sequential \`await agent()\` sees the rejection, while inside \`parallel()\`/\`pipeline()\` the refused slot becomes \`null\` and the script keeps running on partial results. Per-call \`agent({ schema, agentType, model, isolation: 'worktree', workingDir, stallMs })\` covers structured-output contracts, declarative-agent selection, model override, git-worktree-isolated subagents, pinning an agent to a caller-owned worktree, and the no-progress stall watchdog (\`stallMs: 0\` disables it). \`resumeFromRunId\` resumes a prior run \u2014 agent() calls whose rolling prefix-hash matches the journal are served from cache for the longest unchanged prefix. Runs appear in the background-tasks view and the \`/workflows\` dialog (live phase tree, token usage, cooperative pause/resume, cancel); \`run_in_background: true\` returns a run handle immediately in the interactive TUI and delivers completion through the conversation. Scripts run in a node:vm sandbox with no filesystem or shell access \u2014 all I/O happens through the spawned agents.
|
|
3927
4009
|
|
|
3928
4010
|
**Scout first, then orchestrate**
|
|
3929
4011
|
|
|
@@ -3969,6 +4051,18 @@ var WorkflowTool = class extends BaseDeclarativeTool {
|
|
|
3969
4051
|
static {
|
|
3970
4052
|
__name(this, "WorkflowTool");
|
|
3971
4053
|
}
|
|
4054
|
+
buildSessionOwnedBackground(params) {
|
|
4055
|
+
const validationError = this.validateToolParams(params);
|
|
4056
|
+
if (validationError) {
|
|
4057
|
+
throw new Error(validationError);
|
|
4058
|
+
}
|
|
4059
|
+
if (!this.config.getWorkflowRunRegistry().hasCompletionCallback()) {
|
|
4060
|
+
throw new Error(
|
|
4061
|
+
"WorkflowTool: session-owned background runs require an active workflow completion channel."
|
|
4062
|
+
);
|
|
4063
|
+
}
|
|
4064
|
+
return this.createInvocation({ ...params, run_in_background: true });
|
|
4065
|
+
}
|
|
3972
4066
|
validateToolParamValues(params) {
|
|
3973
4067
|
const hasScript = typeof params.script === "string" && params.script.length > 0;
|
|
3974
4068
|
const hasPath = typeof params.scriptPath === "string" && params.scriptPath.length > 0;
|