@qwen-code/qwen-code 0.23.3 → 0.23.4-dev.codemode-responses.20260914.87437db784
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/computer-use/SKILL.md +46 -198
- package/bundled/computer-use/references/macos.md +208 -0
- package/bundled/computer-use/references/windows-linux.md +247 -0
- package/bundled/goal-draft/SKILL.md +10 -10
- package/bundled/qc-helper/docs/configuration/settings.md +81 -71
- package/bundled/qc-helper/docs/extension/getting-started-extensions.md +2 -0
- package/bundled/qc-helper/docs/extension/introduction.md +9 -3
- package/bundled/qc-helper/docs/features/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/agent-board.md +89 -0
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +3 -21
- package/bundled/qc-helper/docs/features/channels/dws.md +5 -1
- package/bundled/qc-helper/docs/features/channels/overview.md +5 -6
- package/bundled/qc-helper/docs/features/code-review.md +18 -4
- package/bundled/qc-helper/docs/features/commands.md +9 -0
- package/bundled/qc-helper/docs/features/computer-use.md +26 -8
- package/bundled/qc-helper/docs/features/cross-session-protocol.md +23 -5
- package/bundled/qc-helper/docs/features/followup-suggestions.md +17 -5
- package/bundled/qc-helper/docs/features/goals.md +22 -18
- package/bundled/qc-helper/docs/features/hooks.md +48 -37
- package/bundled/qc-helper/docs/features/skills.md +33 -3
- package/bundled/qc-helper/docs/features/status-line.md +2 -0
- package/bundled/qc-helper/docs/features/sub-agents.md +27 -0
- package/bundled/qc-helper/docs/qwen-serve.md +7 -3
- package/bundled/review/SKILL.md +20 -10
- package/bundled/review/references/persistence.md +2 -0
- package/bundled/workflow-authoring/SKILL.md +442 -0
- package/bundled/workflow-creator/SKILL.md +1 -1
- package/chunks/{MaxSizedBox-D4LW7RZZ.js → MaxSizedBox-CSMC6NNQ.js} +59 -55
- package/chunks/{StandaloneSessionPicker-ALTTRWUP.js → StandaloneSessionPicker-5G46NROB.js} +83 -79
- package/chunks/{acp-startup-profiler-KEU6VAYR.js → acp-startup-profiler-RUQNTNU5.js} +2 -2
- package/chunks/acp-subagent-executor-4JLSF7SA.js +141 -0
- package/chunks/{acpAgent-BBSW7XZG.js → acpAgent-WJ45JV2S.js} +1026 -355
- package/chunks/{agent-SQ6OY3QD.js → agent-KWNOVXAD.js} +43 -39
- package/chunks/{agent-headless-RI2THRQ7.js → agent-headless-TU5N3GFF.js} +43 -39
- package/chunks/{anthropicContentGenerator-JSKMKS6V.js → anthropicContentGenerator-H5YPXIDE.js} +37 -15
- package/chunks/{artifact-tool-PMYZCYNH.js → artifact-tool-MFGORTWZ.js} +59 -109
- package/chunks/{askUserQuestion-4M4YYIB4.js → askUserQuestion-WS4GUT7C.js} +3 -3
- package/chunks/{bridge-DAFMI72L.js → bridge-PF7UX6MH.js} +63 -58
- package/chunks/{build-63BIOYWK.js → build-5KWQBWEQ.js} +1 -1
- package/chunks/{ca-KC2AISNS.js → ca-GZ4FDJU2.js} +3 -3
- package/chunks/{channel-management-service-OWDXVL7R.js → channel-management-service-AFVIT4VH.js} +8 -8
- package/chunks/{channel-settings-store-4I6JONT7.js → channel-settings-store-3OVAGIC2.js} +68 -64
- package/chunks/{channel-worker-group-F2ZZMLNS.js → channel-worker-group-JR6JOELM.js} +8 -8
- package/chunks/{channel-worker-manager-2SZLJJSJ.js → channel-worker-manager-AVKJEZFL.js} +8 -8
- package/chunks/{channel-worker-supervisor-ZFNWMG6D.js → channel-worker-supervisor-OOYY7BAQ.js} +5 -5
- package/chunks/{chunk-6JACAGYH.js → chunk-2S2WIGCM.js} +1 -1
- package/chunks/{chunk-NRXWJXJ4.js → chunk-2YGR3VN6.js} +15 -15
- package/chunks/{chunk-IUVIBDKU.js → chunk-2YMRRI2C.js} +9 -10
- package/chunks/{chunk-3BTSSIJO.js → chunk-3DOAKZYD.js} +99 -14
- package/chunks/{chunk-F53KKZUD.js → chunk-3LMDSCLU.js} +158 -10
- package/chunks/{chunk-2ZN3O5FT.js → chunk-457DR2MC.js} +6 -6
- package/chunks/{chunk-WG7BL3FY.js → chunk-473RJLIH.js} +1 -1
- package/chunks/{chunk-W5ZQMAEM.js → chunk-4Y2I3CI3.js} +1 -1
- package/chunks/{chunk-HGEUHUEV.js → chunk-54B2LTKP.js} +1 -1
- package/chunks/{chunk-IRH27ZC2.js → chunk-5EZRLTLQ.js} +4 -4
- package/chunks/{chunk-DLH7YIX6.js → chunk-5FK4MSHB.js} +3 -3
- package/chunks/{chunk-CUEXOHQH.js → chunk-5ODRE7E5.js} +9 -15
- package/chunks/{chunk-532WHF4F.js → chunk-5VQR2DD7.js} +2 -2
- package/chunks/{chunk-3KQBQ6FM.js → chunk-63WKMKVD.js} +190 -28
- package/chunks/{chunk-YBUMTY7B.js → chunk-66N6C4EH.js} +1 -1
- package/chunks/{chunk-MLQNSPRZ.js → chunk-6MLDTOHU.js} +15 -5
- package/chunks/{chunk-SBRX4BDI.js → chunk-6NKDU7YL.js} +2 -2
- package/chunks/{chunk-3UXUOFO6.js → chunk-6TMXX4Z4.js} +9 -10
- package/chunks/{chunk-Y2MYW47X.js → chunk-6WXVEDT2.js} +9 -2
- package/chunks/{chunk-ZHKTKHMO.js → chunk-7MIBD3LG.js} +1 -1
- package/chunks/{chunk-EVTNACMT.js → chunk-A6QMKS5S.js} +12 -12
- package/chunks/{chunk-NOAG7N22.js → chunk-A6YU6R5N.js} +2 -2
- package/chunks/{chunk-76RGWKLS.js → chunk-ABNX6E6K.js} +1 -1
- package/chunks/chunk-ACHCT36C.js +28 -0
- package/chunks/{chunk-NE624IVP.js → chunk-ADQUK6WA.js} +1 -1
- package/chunks/{chunk-PLLIWEM3.js → chunk-AEWCOE64.js} +2 -2
- package/chunks/{chunk-3FPYT6QC.js → chunk-ARDHE6MM.js} +23 -0
- package/chunks/{chunk-LILGKQ4B.js → chunk-AXZMWAJV.js} +156 -26
- package/chunks/{chunk-SYLECP23.js → chunk-B776VKDA.js} +4 -4
- package/chunks/{chunk-AC6KDLH3.js → chunk-BNYQHLPR.js} +1 -1
- package/chunks/{chunk-BZM5U74J.js → chunk-BS7ON54G.js} +724 -468
- package/chunks/{chunk-TPKQIA7G.js → chunk-BSIOCNDK.js} +1 -1
- package/chunks/{chunk-U7O65WKL.js → chunk-BW2SMO6L.js} +1 -1
- package/chunks/{chunk-POC3YMHG.js → chunk-BY6CE34S.js} +4 -4
- package/chunks/{chunk-RLLRJJDR.js → chunk-C3VNHDWJ.js} +2 -2
- package/chunks/{chunk-WBCPROWX.js → chunk-C4HBZQNH.js} +1 -1
- package/chunks/{chunk-MSNHNAQZ.js → chunk-C5ABXOC2.js} +3 -3
- package/chunks/{chunk-NOO4QFXM.js → chunk-C75BXMPM.js} +1 -3
- package/chunks/chunk-CCWWPFZJ.js +191 -0
- package/chunks/chunk-CFMZLE3L.js +75 -0
- package/chunks/{chunk-N7VWZDWW.js → chunk-CFSBWJBB.js} +4462 -3840
- package/chunks/{chunk-KOKPXIAN.js → chunk-CL7JONZN.js} +3 -3
- package/chunks/{chunk-AXTFYDXT.js → chunk-CXXAZ2LZ.js} +1 -1
- package/chunks/{chunk-JYKWOREU.js → chunk-DBUOMHLZ.js} +13 -3
- package/chunks/{chunk-R4Q2PEFV.js → chunk-DLJBYORJ.js} +1 -1
- package/chunks/{chunk-DT75RKNH.js → chunk-DNVA2MQ2.js} +3 -3
- package/chunks/{chunk-J3TJH52D.js → chunk-DOTF2PF2.js} +1 -1
- package/chunks/{chunk-HGAELO7B.js → chunk-DQMBQCTY.js} +2 -2
- package/chunks/{chunk-2ALXPGB4.js → chunk-E6IR653O.js} +1 -1
- package/chunks/{chunk-ZKYR7QS4.js → chunk-EDB556X7.js} +2 -2
- package/chunks/chunk-EKJXDLDD.js +32 -0
- package/chunks/{chunk-NUQVB25K.js → chunk-EKMJR7M3.js} +2 -2
- package/chunks/{chunk-7QYWGTHB.js → chunk-EPVEPTI3.js} +44 -151
- package/chunks/{chunk-GCDXVPFK.js → chunk-EZSSJSKR.js} +31 -7
- package/chunks/{chunk-S6Q6Q4P2.js → chunk-FBDHP23D.js} +1 -1
- package/chunks/{chunk-UKZ45TJL.js → chunk-FFBP5POK.js} +420 -219
- package/chunks/{chunk-3I7W2POO.js → chunk-FGROOEKM.js} +5 -40
- package/chunks/{chunk-HNLMYDQE.js → chunk-FMLBBXHB.js} +13 -9
- package/chunks/{chunk-SSGAAWLY.js → chunk-GCV4NOHV.js} +95 -73
- package/chunks/{chunk-ALMR3E6Q.js → chunk-GDWE23OR.js} +3 -3
- package/chunks/{chunk-XBZTAGB7.js → chunk-GMN73IMT.js} +1 -1
- package/chunks/{chunk-IAEXTMED.js → chunk-GNV2SFO7.js} +173 -7
- package/chunks/{chunk-CXTPVBFA.js → chunk-GSS4SZNG.js} +100 -17
- package/chunks/chunk-GXN7DWZZ.js +154 -0
- package/chunks/{chunk-SODMFNAR.js → chunk-H23UWPF7.js} +5 -5
- package/chunks/{chunk-6HUXPLB5.js → chunk-HEOH7JZY.js} +5 -5
- package/chunks/{chunk-DTNV6UZY.js → chunk-HFJSQ4GL.js} +10 -24
- package/chunks/{chunk-GOXQL4YH.js → chunk-HWRXJQ6B.js} +2 -2
- package/chunks/{chunk-VZUCTJ2P.js → chunk-I6YJZGHS.js} +10 -10
- package/chunks/{chunk-RZHU3K6M.js → chunk-IAS753HG.js} +2 -20
- package/chunks/{chunk-EDMXGXAK.js → chunk-IBRQG2MP.js} +10 -13
- package/chunks/chunk-INGBUYL6.js +230 -0
- package/chunks/{chunk-7BXXIQG4.js → chunk-J73WJIMT.js} +36 -72
- package/chunks/{chunk-XGYHNWL3.js → chunk-J7LBAKDH.js} +3 -3
- package/chunks/{chunk-Z3GF56ME.js → chunk-JAYWZWZF.js} +3 -3
- package/chunks/{chunk-DYFOSJHU.js → chunk-JBFC2644.js} +2756 -1153
- package/chunks/{chunk-Q5BD56BW.js → chunk-JPCYCFYG.js} +7 -7
- package/chunks/{chunk-LG5Y4OWO.js → chunk-JRHKM3YQ.js} +2 -2
- package/chunks/{chunk-NHCZJQE4.js → chunk-JZKBMADP.js} +6 -6
- package/chunks/{chunk-MF6E7FSA.js → chunk-K7CQWBLT.js} +8 -201
- package/chunks/{chunk-K2OJUPOE.js → chunk-KP2FHIFR.js} +12 -0
- package/chunks/{chunk-ZU47FBOC.js → chunk-KSIOXYVX.js} +126 -12
- package/chunks/{chunk-IV7GDNKC.js → chunk-KZCK5JUN.js} +4 -4
- package/chunks/{chunk-3XLK2QMY.js → chunk-L3S2Y2FF.js} +59 -16
- package/chunks/{chunk-ZW2EUO2A.js → chunk-L6DIANLD.js} +1 -1
- package/chunks/{chunk-6W4HBUA2.js → chunk-LATAUG2M.js} +1 -1
- package/chunks/{chunk-RWVD5RRY.js → chunk-LBDASOPR.js} +3 -3
- package/chunks/{chunk-OX7IZ2G5.js → chunk-LF5AD7PY.js} +4 -4
- package/chunks/{chunk-NMRCXKQ5.js → chunk-LKCNETDW.js} +3 -3
- package/chunks/chunk-LMJSPC55.js +260 -0
- package/chunks/{chunk-X6K77VHC.js → chunk-LWWRJRCD.js} +1 -1
- package/chunks/{chunk-UXEO7E3V.js → chunk-LYD3T3H7.js} +1 -0
- package/chunks/{chunk-KFZYGSJN.js → chunk-M3YNPR56.js} +3 -3
- package/chunks/{chunk-HBQ2NXOU.js → chunk-MDG6GKSE.js} +2 -2
- package/chunks/{chunk-E4UEO3XM.js → chunk-ME4JBHSB.js} +324 -2
- package/chunks/{chunk-BV6Q5HMY.js → chunk-MJHLKWGJ.js} +8 -7
- package/chunks/{chunk-NFYEQRLG.js → chunk-MQRLLBMQ.js} +1 -1
- package/chunks/{chunk-O4KNCAX4.js → chunk-NCPFOLM2.js} +11 -0
- package/chunks/{chunk-2SZH22YO.js → chunk-NJ2OFVUX.js} +115 -97
- package/chunks/{chunk-DAWWT2ID.js → chunk-NN4EC2WO.js} +1374 -2164
- package/chunks/{chunk-6MBXY6WM.js → chunk-NRQI3PGS.js} +1 -1
- package/chunks/{chunk-HBU7EKY4.js → chunk-NRUKL236.js} +45 -15
- package/chunks/{chunk-53GWJOLP.js → chunk-NTCFKGQF.js} +3 -1
- package/chunks/{chunk-3CZ2BQV6.js → chunk-NXUZFW3G.js} +49 -19
- package/chunks/{chunk-X7UJKOHZ.js → chunk-OMDXAHCT.js} +4 -6
- package/chunks/{chunk-5GLDOLNQ.js → chunk-OWUAZXXN.js} +4 -3
- package/chunks/{chunk-2UWQX4FP.js → chunk-OZEV3R3S.js} +1 -1
- package/chunks/{acp-subagent-executor-LEUN3N7N.js → chunk-PAPBT3WP.js} +11 -110
- package/chunks/{chunk-7ICHPMBQ.js → chunk-PHSQVB6D.js} +4 -4
- package/chunks/{chunk-FCQJLMA2.js → chunk-Q3TFRP5G.js} +178 -8
- package/chunks/{chunk-YQHLFCPU.js → chunk-Q5CCYZD3.js} +32 -24
- package/chunks/chunk-QQL5BFOL.js +1416 -0
- package/chunks/{chunk-ZKZHSB5W.js → chunk-QR4Q425T.js} +9 -9
- package/chunks/{chunk-J6MB5ZHZ.js → chunk-QZW6WRB7.js} +2 -1
- package/chunks/{chunk-TP6FYVQT.js → chunk-RSWBT7AZ.js} +33 -1
- package/chunks/{chunk-2PJRI3EH.js → chunk-RVOD66ID.js} +218 -43
- package/chunks/{chunk-W5FIP7FC.js → chunk-S3PU3CNW.js} +5 -5
- package/chunks/chunk-S7UQ3V2H.js +87 -0
- package/chunks/{chunk-N6VQ37ZZ.js → chunk-SFL6U7U7.js} +1 -1
- package/chunks/{chunk-MOS5OAOG.js → chunk-SROLVJFY.js} +6 -6
- package/chunks/{chunk-HUXPEUFL.js → chunk-SYROIHU7.js} +1 -1
- package/chunks/{chunk-E7LB57MB.js → chunk-T3LUMYFP.js} +6 -6
- package/chunks/{chunk-PSPAM24S.js → chunk-TBSCTWKF.js} +6 -0
- package/chunks/{chunk-5KI7ZDTB.js → chunk-TV5WDW7R.js} +24 -12
- package/chunks/{chunk-NMCDMLHL.js → chunk-TXUJOKVR.js} +50 -35
- package/chunks/{chunk-NHJKAR6E.js → chunk-TYWLBEL2.js} +972 -18
- package/chunks/chunk-U6H3XTFA.js +95 -0
- package/chunks/{chunk-GSILBZLN.js → chunk-U7RWQBGZ.js} +2 -2
- package/chunks/{chunk-7APZIRH3.js → chunk-V3CMBOQ6.js} +5 -5
- package/chunks/{chunk-JXNIF2O5.js → chunk-V545KI73.js} +1 -1
- package/chunks/chunk-VGY2RGXL.js +100 -0
- package/chunks/{chunk-TBEXLLAO.js → chunk-VRQZESKP.js} +1 -1
- package/chunks/{chunk-FN3JNDRU.js → chunk-VVI7MK3V.js} +3 -3
- package/chunks/{chunk-EUURTIV6.js → chunk-WBSJ6VPZ.js} +10 -2
- package/chunks/{chunk-NLNQNBZ2.js → chunk-WD6YQI5M.js} +1 -1
- package/chunks/chunk-WFNEY5G7.js +347 -0
- package/chunks/{chunk-XKBFYTCD.js → chunk-WK6DEH3Q.js} +46 -0
- package/chunks/{chunk-36HCNKDS.js → chunk-WKVZES7O.js} +65 -14
- package/chunks/{chunk-BWAMMKIS.js → chunk-WLLRNQVT.js} +135 -6
- package/chunks/{chunk-MHAADZOZ.js → chunk-WMSP3XZK.js} +3 -3
- package/chunks/{chunk-IL5M5NYD.js → chunk-WUTXSXPP.js} +11 -9
- package/chunks/{chunk-NJQTG2G3.js → chunk-XE5ZFBVD.js} +11 -11
- package/chunks/{chunk-OLTN767L.js → chunk-XO3Z27IL.js} +2 -2
- package/chunks/{chunk-VX63RJXE.js → chunk-XX5HQLCZ.js} +7 -0
- package/chunks/{chunk-2Z3T52OC.js → chunk-Y5TM7SBV.js} +7 -2
- package/chunks/{chunk-V2P3DOQR.js → chunk-YDFOHRS5.js} +1 -1
- package/chunks/{chunk-QMUYLYT5.js → chunk-YGFJ6BRT.js} +1 -1
- package/chunks/{chunk-LK2WUCDQ.js → chunk-YM6KUQ2S.js} +1 -1
- package/chunks/{chunk-F42YYSCK.js → chunk-YVF4PKCV.js} +8 -8
- package/chunks/{chunk-LDVNJZGH.js → chunk-Z2H5HQS3.js} +17 -8
- package/chunks/chunk-Z72PLR74.js +36 -0
- package/chunks/{chunk-BWQLXU37.js → chunk-ZDHXRKRG.js} +381 -86
- package/chunks/{chunk-BHTYRHJF.js → chunk-ZJ7JQUGY.js} +4 -1
- package/chunks/{chunk-4ALNJDHL.js → chunk-ZKIAGIGH.js} +87 -4
- package/chunks/{chunk-VG3Q2NC4.js → chunk-ZNI3YJHS.js} +32 -12
- package/chunks/chunk-ZRZZLM37.js +2780 -0
- package/chunks/{chunk-Q2LVVIKF.js → chunk-ZZUXUBEB.js} +29 -12
- package/chunks/codex-subagent-executor-SM3TUSBA.js +586 -0
- package/chunks/{config-utils-L6KLDYIV.js → config-utils-JHKHFOG6.js} +60 -56
- package/chunks/{contextCommand-UYEH7NIU.js → contextCommand-XE4NDYQW.js} +58 -54
- package/chunks/{core-runtime-NVHT3Z3V.js → core-runtime-PNCWH3RE.js} +58 -55
- package/chunks/{create-sub-session-TIGCFGCS.js → create-sub-session-MSGNIM37.js} +5 -2
- package/chunks/{create-sub-session-YWASE5VH.js → create-sub-session-P7E5Y3HY.js} +169 -89
- package/chunks/{cron-create-AKWX67FO.js → cron-create-U2JJ5CCF.js} +3 -3
- package/chunks/{cron-delete-XPB6IYZJ.js → cron-delete-7DM4LJWD.js} +2 -2
- package/chunks/{cron-list-XBKO4WU5.js → cron-list-VCUSZK2Y.js} +2 -2
- package/chunks/{daemon-G5TYKZD6.js → daemon-NJB4PWZ7.js} +3 -1
- package/chunks/{daemon-git-worktree-guard-FOW4RQSK.js → daemon-git-worktree-guard-JFD5VZRN.js} +58 -54
- package/chunks/{daemon-status-provider-O5KQZYMP.js → daemon-status-provider-A3VFVFWW.js} +68 -63
- package/chunks/{daemon-trust-policy-3ATXEON7.js → daemon-trust-policy-NPZ47MZH.js} +64 -60
- package/chunks/{daemon-trust-policy-monitor-7MCNDNEC.js → daemon-trust-policy-monitor-XG2CHL3Z.js} +64 -60
- package/chunks/{de-UU2YTO37.js → de-VGY3VNBU.js} +3 -3
- package/chunks/{deferred-core-runtime-JK5IXL5K.js → deferred-core-runtime-V42EMU27.js} +56 -52
- package/chunks/{discovery-XP4RMDUM.js → discovery-5KUEPR65.js} +2 -2
- package/chunks/{display-image-NAH3AZ63.js → display-image-QTHALY6N.js} +3 -3
- package/chunks/{dist-KLZ7XGEQ.js → dist-2QYIVNS6.js} +1 -4
- package/chunks/{dist-AHJYPSJL.js → dist-GUB7QRYA.js} +2 -5
- package/chunks/{dist-ZXTZTE54.js → dist-MPUZZOG5.js} +4 -17
- package/chunks/{dist-F2DVGTL3.js → dist-NIOJXMGY.js} +111 -101
- package/chunks/{dist-KJGRVIGJ.js → dist-PA7WPFVE.js} +5 -36
- package/chunks/{dist-AIKC5E5P.js → dist-SE4J6Z4O.js} +43 -669
- package/chunks/{dist-H6G3K26N.js → dist-T6DDPDLQ.js} +14 -34
- package/chunks/{dist-GWNQVPZT.js → dist-TFGETXFN.js} +10 -33
- package/chunks/{dist-ZA52JXAS.js → dist-VDLSBCLM.js} +1 -5
- package/chunks/{edit-SY35KYIE.js → edit-E2ZGJDBJ.js} +46 -42
- package/chunks/{en-CAJHTIQT.js → en-E5ZO5TZW.js} +5 -3
- package/chunks/{enter-worktree-54L5QJ3N.js → enter-worktree-CAARFWBI.js} +6 -5
- package/chunks/{enterPlanMode-HXX6KQJR.js → enterPlanMode-442YAAZB.js} +43 -39
- package/chunks/{environment-DKXHG4HB.js → environment-DCJ5FVHM.js} +59 -55
- package/chunks/{errors-ADY7LQJJ.js → errors-ZWTDW2NJ.js} +58 -54
- package/chunks/exec-RPKEY6HP.js +505 -0
- package/chunks/{exit-worktree-EORJDKDS.js → exit-worktree-JXGGUOBP.js} +6 -5
- package/chunks/{exitPlanMode-HSK2CQI6.js → exitPlanMode-4PLQOFOO.js} +43 -39
- package/chunks/{fast-path-U636VWN2.js → fast-path-DBSGDGB3.js} +10 -10
- package/chunks/{fast-path-settings-V7MI7EZJ.js → fast-path-settings-XDYX7X5Z.js} +2 -2
- package/chunks/{fr-HKNWVXRJ.js → fr-UAZJJH5N.js} +3 -3
- package/chunks/{glob-GUGGTH5L.js → glob-VWOE4W7K.js} +43 -39
- package/chunks/{goal-tools-PXYRSQGX.js → goal-tools-K6SIBXMB.js} +49 -41
- package/chunks/{grep-3PKFKLCA.js → grep-H2I33VAO.js} +8 -3
- package/chunks/{handleAutoUpdate-5KHS4HIN.js → handleAutoUpdate-NCC3XELY.js} +61 -57
- package/chunks/{i18n-KSGKMUPT.js → i18n-GO7JI4PT.js} +57 -53
- package/chunks/{image-gen-OCCR2WWU.js → image-gen-5G2TQ3DY.js} +6 -5
- package/chunks/{initializer-YYT5XEZF.js → initializer-BXKAW5A6.js} +64 -60
- package/chunks/{installationInfo-UNSBPYW2.js → installationInfo-5JONIX62.js} +57 -53
- package/chunks/{ja-GJS5RZGU.js → ja-2RITCMAJ.js} +3 -3
- package/chunks/list-QW74LCLS.js +133 -0
- package/chunks/{list-agents-QLDXS5OD.js → list-agents-EWDCEPIW.js} +3 -3
- package/chunks/{llm-XGGLBGPH.js → llm-FJHSMJTM.js} +161 -125
- package/chunks/{llm-content-generator-ZHQQT5W7.js → llm-content-generator-3VLLPQS4.js} +14 -7
- package/chunks/{loadedSettingsAdapter-3DXLASK7.js → loadedSettingsAdapter-OLMQSKVC.js} +64 -60
- package/chunks/{loggingContentGenerator-V72OCCJO.js → loggingContentGenerator-IMLIJULY.js} +47 -43
- package/chunks/{loop-wakeup-HHMYIC7Z.js → loop-wakeup-VG6CGBQA.js} +4 -4
- package/chunks/{ls-N7ABR6HI.js → ls-6ZB3BEIR.js} +1 -1
- package/chunks/{lsp-LTOFWG5P.js → lsp-M54FQARP.js} +5 -1
- package/chunks/{managed-npm-update-HV5LPZH2.js → managed-npm-update-LXLBWCNA.js} +57 -53
- package/chunks/mcp-FOXA3372.js +127 -0
- package/chunks/model-configuration-SCOI2KPF.js +140 -0
- package/chunks/modelConfigUtils-EA44S64C.js +119 -0
- package/chunks/{monitor-TLBNM4MV.js → monitor-TJAHYCCY.js} +43 -39
- package/chunks/{nonInteractiveCli-LSJSQ2W4.js → nonInteractiveCli-QH2HABWC.js} +112 -107
- package/chunks/{notebook-edit-OSPOLZP6.js → notebook-edit-WEMSBUBS.js} +45 -41
- package/chunks/{openaiContentGenerator-BE4S5TRD.js → openaiContentGenerator-WD5DWYOA.js} +24 -19
- package/chunks/{openaiResponsesContentGenerator-RTCAJ5V5.js → openaiResponsesContentGenerator-AWRYZLJU.js} +110 -19
- package/chunks/{pidfile-H32FEPWA.js → pidfile-TQL2LCEG.js} +56 -52
- package/chunks/{processUtils-SSLIPDEA.js → processUtils-6ZU56DCI.js} +2 -2
- package/chunks/{prompt-terminal-ledger-I5SLL6UF.js → prompt-terminal-ledger-3HAKHXFV.js} +57 -53
- package/chunks/{pt-FXMYXEUV.js → pt-5ZF7ZQUV.js} +3 -3
- package/chunks/{qwenContentGenerator-TMQC623Z.js → qwenContentGenerator-3OIZQZLC.js} +47 -43
- package/chunks/{qwenOAuth2-3ZRQHHTC.js → qwenOAuth2-WIEUEFEY.js} +5 -4
- package/chunks/{read-file-T2QAIZE2.js → read-file-2PWWL6J2.js} +9 -8
- package/chunks/{read-mcp-resource-B37WANAQ.js → read-mcp-resource-LPSWXVOD.js} +1 -1
- package/chunks/{record-artifact-OAXWXZ5D.js → record-artifact-PXMNP7GZ.js} +3 -3
- package/chunks/{record-source-D7R7X3GT.js → record-source-2GSY5JD5.js} +6 -6
- package/chunks/{report-findings-AR3VC6EQ.js → report-findings-W6GR7SYZ.js} +4 -4
- package/chunks/{request-shutdown-IKNWTX5M.js → request-shutdown-53SNYGVR.js} +5 -5
- package/chunks/{resumeHistoryUtils-QLKDH5GY.js → resumeHistoryUtils-S4TEUTKE.js} +63 -59
- package/chunks/{ripGrep-YGWL7KCV.js → ripGrep-5NMGLMLX.js} +13 -11
- package/chunks/{ru-RMHURE5U.js → ru-7BNZFQKG.js} +3 -3
- package/chunks/{run-qwen-serve-26KZDECC.js → run-qwen-serve-6MGYRK4V.js} +314 -127
- package/chunks/{runtime-BMEIVDDG.js → runtime-ZJYUQCPP.js} +69 -65
- package/chunks/{scheduled-tasks-NCFPP6VQ.js → scheduled-tasks-5MKF4EV3.js} +66 -60
- package/chunks/{scheduler-47TVMUVN.js → scheduler-72DZWRH5.js} +58 -54
- package/chunks/{sdk-exporters-http-VWTF4W6K.js → sdk-exporters-http-3R2TRQHE.js} +2 -1
- package/chunks/{sdk-impl-G6FVTBQZ.js → sdk-impl-4WF3VZ2F.js} +3 -3
- package/chunks/{send-message-TWOGWCBG.js → send-message-UMJKN27Q.js} +7 -7
- package/chunks/{serve-KL3G6LQQ.js → serve-7ZDMMA7I.js} +66 -62
- package/chunks/{server-LBPYXZ5G.js → server-ONK5RTEV.js} +783 -350
- package/chunks/{session-YG6742LO.js → session-XQW2LM4S.js} +117 -112
- package/chunks/{session-attachments-root-OUBQDYC4.js → session-attachments-root-Q5IUCMQV.js} +56 -52
- package/chunks/{session-pr-refresh-EKGMYNAW.js → session-pr-refresh-MVECWT3W.js} +66 -60
- package/chunks/{settings-DDNHJX2L.js → settings-DL6K2HQ3.js} +67 -63
- package/chunks/{shell-KUCXWITU.js → shell-BLP25QJU.js} +43 -39
- package/chunks/{skill-JQLKPNWZ.js → skill-7KURUNLD.js} +128 -23
- package/chunks/{skill-settings-XERQCUXZ.js → skill-settings-MY76LM46.js} +72 -60
- package/chunks/{spawnChannel-GQ45QFGB.js → spawnChannel-IJLH3Z74.js} +60 -55
- package/chunks/{standalone-update-PRF3ILGZ.js → standalone-update-YQKN7VNO.js} +58 -54
- package/chunks/{start-opentui-ui-JDSOZE3N.js → start-opentui-ui-ORNGKZTG.js} +2693 -2160
- package/chunks/{startInteractiveUI-RRW3JVHN.js → startInteractiveUI-PRLIKB4U.js} +1610 -1773
- package/chunks/{syntheticOutput-F6F27JMK.js → syntheticOutput-EX5L5GYI.js} +2 -2
- package/chunks/{task-create-Y623TBHB.js → task-create-75HVPEAH.js} +7 -7
- package/chunks/{task-list-FCPEEGWL.js → task-list-ZLJSMRFA.js} +2 -2
- package/chunks/{task-stop-QTKZXLPH.js → task-stop-MD7P6QGK.js} +1 -1
- package/chunks/{task-update-YLSXF25N.js → task-update-RI7QNVDP.js} +20 -13
- package/chunks/{team-create-5DRLOLOE.js → team-create-ANLKOQ44.js} +43 -39
- package/chunks/{team-delete-S7TLHZCF.js → team-delete-RIDINW6I.js} +1 -1
- package/chunks/{team-plan-approval-MWSGAL5T.js → team-plan-approval-EFUENI6Y.js} +43 -39
- package/chunks/{terminal-image-renderer-H7PD4FQW.js → terminal-image-renderer-CXMFIWKC.js} +58 -54
- package/chunks/{theme-manager-7AV73D6R.js → theme-manager-JUFYQDQQ.js} +56 -52
- package/chunks/{todoWrite-5QI2H2FW.js → todoWrite-XSTG2VT5.js} +6 -3
- package/chunks/{tool-search-UGYTBLUV.js → tool-search-SNCEA4VA.js} +17 -12
- package/chunks/{total-session-admission-JIHSTJ5S.js → total-session-admission-UHYNUO3L.js} +63 -58
- package/chunks/{tree-sitter-4D7QS7F6.js → tree-sitter-NZ3QACD7.js} +1 -1
- package/chunks/{tree-sitter-bash-VEJGF5XF.js → tree-sitter-bash-WXHLMORC.js} +1 -1
- package/chunks/{trustedFolders-5VCBXFOP.js → trustedFolders-YBR5URPG.js} +57 -53
- package/chunks/{update-relaunch-4LF3APCV.js → update-relaunch-L6MTSN76.js} +5 -5
- package/chunks/{updateCheck-4T3WUE5F.js → updateCheck-Z3SPZXHC.js} +60 -56
- package/chunks/{useAutoAcceptIndicator-UMGB64Z6.js → useAutoAcceptIndicator-PR5XGMO6.js} +68 -64
- package/chunks/{validateNonInterActiveAuth-GFJ72U2C.js → validateNonInterActiveAuth-KFLTWEYW.js} +109 -104
- package/chunks/{version-EAAZN4T2.js → version-NGAKFVUF.js} +1 -1
- package/chunks/{web-fetch-VRU3A2NI.js → web-fetch-WPGTHGU5.js} +15 -13
- package/chunks/web-search-JT63IJJV.js +39 -0
- package/chunks/{web-shell-static-CCN4JZEE.js → web-shell-static-T7UGLVE4.js} +2 -7
- package/chunks/{workflow-UHPFALVZ.js → workflow-EB63BAL4.js} +179 -79
- package/chunks/workspace-providers-status-NEPR67D2.js +133 -0
- package/chunks/{workspace-registration-store-A7RGKW62.js → workspace-registration-store-CFWXOMGH.js} +2 -2
- package/chunks/{workspace-registry-C2NGE6SD.js → workspace-registry-6KRZXOGB.js} +63 -58
- package/chunks/{workspace-runtime-coordinator-QKMZ24YF.js → workspace-runtime-coordinator-SP4X3UVH.js} +66 -59
- package/chunks/{workspace-service-RQTTAGGC.js → workspace-service-PRMYJTTV.js} +70 -65
- package/chunks/workspace-skills-status-VYTZJ5MB.js +130 -0
- package/chunks/{workspace-trust-reconciler-KFWATZUU.js → workspace-trust-reconciler-B4QMGDMI.js} +73 -68
- package/chunks/{write-file-DPVB2SBQ.js → write-file-EGBMW7TS.js} +45 -41
- package/chunks/{zh-TW-2K2WRFPY.js → zh-TW-7PRVUGLW.js} +5 -3
- package/chunks/{zh-S5V3Z5CR.js → zh-V2EYTYJP.js} +5 -3
- package/chunks/{zoom-image-S7AWLAPC.js → zoom-image-UR6K2LDR.js} +11 -10
- package/cli.js +18 -17
- package/codeModeHost.js +4425 -0
- package/export-transcript-document.css +1 -1
- package/export-transcript-document.js +151 -151
- package/locales/ca.js +5 -6
- package/locales/de.js +5 -6
- package/locales/en.js +7 -6
- package/locales/fr.js +6 -6
- package/locales/ja.js +5 -6
- package/locales/pt.js +5 -6
- package/locales/ru.js +6 -6
- package/locales/zh-TW.js +7 -6
- package/locales/zh.js +7 -6
- package/package.json +4 -3
- package/web-shell/assets/{abnfDiagram-VCTEODGH-nU24rpIE.js → abnfDiagram-VCTEODGH-S_JCiANq.js} +1 -1
- package/web-shell/assets/{arc-D1hTu8QI.js → arc-DP-839Xn.js} +1 -1
- package/web-shell/assets/architectureDiagram-5GKGNRK7-C8rCd2KK.js +36 -0
- package/web-shell/assets/blockDiagram-NRAW4CY4-DQR82jwr.js +129 -0
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-kEFoC1ei.js → c4Diagram-UCG6FXSJ-D21PNMRP.js} +4 -4
- package/web-shell/assets/channel-BgGrpX_z.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-DbT9wS7j.js → chunk-2Q5K7J3B-KdDInGLi.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-CNbULt6O.js → chunk-5VM5RSS4-ltb7zRmH.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-CbQRy4Tb.js → chunk-F27PBJKO-DcpQA0Ng.js} +1 -1
- package/web-shell/assets/chunk-G27WJ6UU-C8NDZxcy.js +231 -0
- package/web-shell/assets/chunk-JWPE2WC7-hXhhHTs1.js +1 -0
- package/web-shell/assets/chunk-LCL6LL3I-CLaOR-Hl.js +206 -0
- package/web-shell/assets/chunk-POPQ4Y6H-Y5_qlB1N.js +1 -0
- package/web-shell/assets/{chunk-SVP7TREG-DyBb2Axj.js → chunk-SVP7TREG-BWX2Voh7.js} +4 -4
- package/web-shell/assets/{chunk-XXDRQBXY-BIA0eb5B.js → chunk-XXDRQBXY-1wmj_kXI.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-jUH7ADYs.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-jUH7ADYs.js +1 -0
- package/web-shell/assets/cose-bilkent-JH36ORCC-DpLc-cdd.js +1 -0
- package/web-shell/assets/cynefin-OW5HDTMX-DhxGiPZW.js +178 -0
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-LENf_IUy.js → cynefinDiagram-5FMLGOSQ-Dl3jfBry.js} +1 -1
- package/web-shell/assets/{cytoscape.esm-CUqq0XTU.js → cytoscape.esm-DJK6lGiH.js} +3 -3
- package/web-shell/assets/dagre-3AP2YEHR-C8FA8vJk.js +4 -0
- package/web-shell/assets/diagram-S7CK7UJ4-D-quIUtW.js +30 -0
- package/web-shell/assets/diagram-UQ7AKVKN-Bjo09Uts.js +41 -0
- package/web-shell/assets/diagram-VSXAHHWV-IoI3ttq4.js +3 -0
- package/web-shell/assets/diagram-VX7I27RA-BKyOZ5SO.js +24 -0
- package/web-shell/assets/diagram-Z3DM3KII-Cu_OHEhw.js +24 -0
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-BGpiquRm.js → ebnfDiagram-PWID7BFC-UVB-bbPg.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-D0besu_U.js → erDiagram-SSCWMZ5O-l8drddto.js} +13 -13
- package/web-shell/assets/flowDiagram-A5DVABFB-DU1I_VAI.js +168 -0
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-CNlsAeNr.js → ganttDiagram-EL5Y4UJY-BLRH05uB.js} +1 -1
- package/web-shell/assets/gitGraphDiagram-WWUBYQGX-Czg_BkRE.js +106 -0
- package/web-shell/assets/index-CmMV8Jla.js +3 -0
- package/web-shell/assets/{index-CGT341lL.js → index-DohPy72Z.js} +1 -1
- package/web-shell/assets/index-DyMtNYuu.js +2207 -0
- package/web-shell/assets/index-n6N-2a3v.css +36 -0
- package/web-shell/assets/{infoDiagram-RXCK75RN-Bpai64Ll.js → infoDiagram-RXCK75RN-BpBvjkro.js} +1 -1
- package/web-shell/assets/ishikawaDiagram-5VMMS53U-phy1l3jm.js +70 -0
- package/web-shell/assets/{journeyDiagram-EYS64GPL-iz_DKgFX.js → journeyDiagram-EYS64GPL-oY-9LgVS.js} +1 -1
- package/web-shell/assets/kanban-definition-3QL26DDD-slZoy-sc.js +89 -0
- package/web-shell/assets/{layout-qEvKgnvU.js → layout-0hnn_P9l.js} +1 -1
- package/web-shell/assets/{linear-C6lklGdq.js → linear-7Wqe8DRy.js} +1 -1
- package/web-shell/assets/mermaid.core-BaK8n0bq.js +312 -0
- package/web-shell/assets/mindmap-definition-FBJOCRG2-BedUdy_E.js +96 -0
- package/web-shell/assets/{pegDiagram-XKGWAZYB-BhD0q0i6.js → pegDiagram-XKGWAZYB-DQLRdmxq.js} +1 -1
- package/web-shell/assets/pieDiagram-E7YTZNPT-UC20w9-5.js +39 -0
- package/web-shell/assets/quadrantDiagram-AXDQQJYC-CQx2Hmk3.js +7 -0
- package/web-shell/assets/qwen-code-notification-BRVagufF.png +0 -0
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-E1g2KIFK.js → railroadDiagram-O6MQD6OU-2UEJe_y-.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-CuerYJOe.js → requirementDiagram-EFPCY7ZU-DOAJggB4.js} +13 -13
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-CqWyCZGA.js → sankeyDiagram-P5KCCOFB-DnQ_qJo7.js} +7 -7
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-B-YWb8x4.js → sequenceDiagram-WJ2MYXX4-DZrZUoCo.js} +16 -16
- package/web-shell/assets/sizeCapture-X5ZJPWSS-B5G4GDQB.js +1 -0
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-C8LDpNHS.js → stateDiagram-HBIQ2CUA-Bn1cT0qF.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-BF3xtNvJ.js +1 -0
- package/web-shell/assets/swimlanes-XN3QIQJK-Bzhcdn87.js +1 -0
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-B753mA3E.js +8 -0
- package/web-shell/assets/timeline-definition-24CTP7MA-BqZ_3D10.js +120 -0
- package/web-shell/assets/vennDiagram-4TSXK5OY-z9kw1kmm.js +34 -0
- package/web-shell/assets/wardleyDiagram-VM6X3IG4-Cydp1zJW.js +78 -0
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-ruD2Wjhg.js → xychartDiagram-S5SC5T6Z-j4X1lQKo.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/chunk-7Q2AXRDJ.js +0 -114
- package/chunks/chunk-AEY27Z35.js +0 -1411
- package/chunks/chunk-CFKIH3D3.js +0 -50
- package/chunks/chunk-HWVUSYSN.js +0 -126
- package/chunks/chunk-QHMLYMMS.js +0 -32
- package/chunks/chunk-SAH4BD2J.js +0 -92
- package/chunks/chunk-TWUKBNWM.js +0 -86
- package/chunks/chunk-ZTTC7T4X.js +0 -126
- package/chunks/list-YL6LDQKQ.js +0 -129
- package/chunks/mcp-IYVSIW6O.js +0 -123
- package/chunks/web-search-NEGYQNDJ.js +0 -912
- package/chunks/workspace-providers-status-AEYISSU2.js +0 -127
- package/chunks/workspace-skills-status-5HWZU3HX.js +0 -126
- package/web-shell/assets/architectureDiagram-5GKGNRK7-B_fgkKe7.js +0 -36
- package/web-shell/assets/blockDiagram-NRAW4CY4-C3pddUNg.js +0 -129
- package/web-shell/assets/channel-Blod4z1X.js +0 -1
- package/web-shell/assets/chunk-G27WJ6UU-CVbXTxYk.js +0 -231
- package/web-shell/assets/chunk-JWPE2WC7-D89c_BXy.js +0 -1
- package/web-shell/assets/chunk-LCL6LL3I-B7-I_9KB.js +0 -206
- package/web-shell/assets/chunk-POPQ4Y6H-DcLQFzS4.js +0 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-D6hFDMqb.js +0 -1
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-D6hFDMqb.js +0 -1
- package/web-shell/assets/cose-bilkent-JH36ORCC-Db2FYN85.js +0 -1
- package/web-shell/assets/cynefin-OW5HDTMX-i4GwmBVy.js +0 -178
- package/web-shell/assets/dagre-3AP2YEHR-CF9XVrD9.js +0 -4
- package/web-shell/assets/diagram-S7CK7UJ4-DD5PJfSm.js +0 -30
- package/web-shell/assets/diagram-UQ7AKVKN-CjD_sBMj.js +0 -41
- package/web-shell/assets/diagram-VSXAHHWV-U5WwMqyA.js +0 -3
- package/web-shell/assets/diagram-VX7I27RA-BujpHJJf.js +0 -24
- package/web-shell/assets/diagram-Z3DM3KII-3ZLtKEXo.js +0 -24
- package/web-shell/assets/flowDiagram-A5DVABFB-9DwDuIyr.js +0 -168
- package/web-shell/assets/gitGraphDiagram-WWUBYQGX-C_pPFiTR.js +0 -106
- package/web-shell/assets/index-BYWs4JWq.js +0 -3
- package/web-shell/assets/index-D3YS6KuJ.js +0 -2173
- package/web-shell/assets/index-eBxK3rs2.css +0 -36
- package/web-shell/assets/ishikawaDiagram-5VMMS53U-ktpJFq4r.js +0 -70
- package/web-shell/assets/kanban-definition-3QL26DDD-m_gG00Yt.js +0 -89
- package/web-shell/assets/mermaid.core-DSCYB_2P.js +0 -312
- package/web-shell/assets/mindmap-definition-FBJOCRG2-DRQbT8w-.js +0 -96
- package/web-shell/assets/pieDiagram-E7YTZNPT-BvIGQCSd.js +0 -39
- package/web-shell/assets/quadrantDiagram-AXDQQJYC-BDQtfpU-.js +0 -7
- package/web-shell/assets/sizeCapture-X5ZJPWSS-BB7YY4Tl.js +0 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-C4CbdvGa.js +0 -1
- package/web-shell/assets/swimlanes-XN3QIQJK-D94vOoxZ.js +0 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN--QNSIOC8.js +0 -8
- package/web-shell/assets/timeline-definition-24CTP7MA-C9C8uEYm.js +0 -120
- package/web-shell/assets/vennDiagram-4TSXK5OY-CYzMHbVW.js +0 -34
- package/web-shell/assets/wardleyDiagram-VM6X3IG4-G9nhtLES.js +0 -78
- package/chunks/{open-with-auth-6MVIHMXB.js → open-with-auth-XFCCJOO6.js} +3 -3
|
@@ -0,0 +1,442 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: workflow-authoring
|
|
3
|
+
description: Reference for writing a Workflow tool script (script API and gotchas, agent() options, pipeline() vs parallel(), verification and convergence patterns, resume, worked example). Load before authoring a script for a workflow the user already opted into; it does not itself authorize running one.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Workflow authoring reference
|
|
7
|
+
|
|
8
|
+
Everything below is about _writing_ the script. Whether a workflow may run at
|
|
9
|
+
all is decided by the Workflow tool's own opt-in rule — this reference does
|
|
10
|
+
not authorize a run.
|
|
11
|
+
|
|
12
|
+
Reach for one to be comprehensive (decompose the work and cover every part in
|
|
13
|
+
parallel), to be confident (independent perspectives and adversarial checks
|
|
14
|
+
before an answer is committed to), or to take on scale a single context cannot
|
|
15
|
+
hold — migrations, audits, broad sweeps. The script is where that structure is
|
|
16
|
+
encoded: what fans out, what verifies, what synthesizes. Parallelism on its own
|
|
17
|
+
is not a reason; work that is already one short sequence of edits belongs in
|
|
18
|
+
the main loop.
|
|
19
|
+
|
|
20
|
+
## Scout first, then orchestrate
|
|
21
|
+
|
|
22
|
+
The strongest pattern is hybrid: discover the work list in the main loop (list
|
|
23
|
+
the files, scope the diff, read the failing test), then hand that list to a
|
|
24
|
+
workflow. You do not need to know the shape of the work before the task — only
|
|
25
|
+
before the orchestration step. When the work has distinct phases, run several
|
|
26
|
+
small workflows across turns and read each result before choosing the next,
|
|
27
|
+
rather than authoring one large script that runs unattended.
|
|
28
|
+
|
|
29
|
+
Common single-phase shapes: understand (parallel readers over subsystems,
|
|
30
|
+
merged into one map), design (independent approaches, judged, then
|
|
31
|
+
synthesized), review (dimensions, find, verify each finding), research (broad
|
|
32
|
+
sweep, deep read, synthesis), migrate (discover sites, transform each under
|
|
33
|
+
`isolation: 'worktree'`, verify).
|
|
34
|
+
|
|
35
|
+
## Script contract
|
|
36
|
+
|
|
37
|
+
The source is wrapped as an async IIFE, so top-level `await` and a top-level
|
|
38
|
+
`return` are both legal — and a trailing expression is _not_ a return value.
|
|
39
|
+
End every successful path with an explicit `return`.
|
|
40
|
+
|
|
41
|
+
It is plain JavaScript, not TypeScript, and it cannot `import` anything.
|
|
42
|
+
|
|
43
|
+
The script may start with a literal `export const meta = {...}` declaration
|
|
44
|
+
with `name`, `description`, and optionally `whenToUse` and
|
|
45
|
+
`phases: [{ title, detail? }]`. It must be a pure literal — no variables,
|
|
46
|
+
calls, or interpolation — and it is stripped before execution, so nothing in
|
|
47
|
+
the script body can read it. Fields outside that list are dropped. The
|
|
48
|
+
approval dialog prints the name, the description, and each phase title with
|
|
49
|
+
its `detail` as a one-line explanation beside it: give every phase a `detail`,
|
|
50
|
+
because for a run that may dispatch hundreds of agents it is what the user
|
|
51
|
+
reads before approving.
|
|
52
|
+
|
|
53
|
+
Injected globals, and nothing else:
|
|
54
|
+
|
|
55
|
+
- `phase(title)` — open a phase. Everything dispatched afterwards is attributed
|
|
56
|
+
to it in the live phase tree, until the next phase opens.
|
|
57
|
+
- `log(msg)` — one line into the run log the user watches.
|
|
58
|
+
- `agent(prompt, opts?)` — dispatch one subagent. See **agent() options**.
|
|
59
|
+
- `parallel(thunks)` — run thunks through the shared concurrency window,
|
|
60
|
+
resolving to a position-aligned array. `parallel()` itself rejects on
|
|
61
|
+
invalid arguments.
|
|
62
|
+
- `pipeline(items, ...stages)` — run each item through the stages
|
|
63
|
+
independently. See **Default to `pipeline()`**.
|
|
64
|
+
- `workflow(nameOrRef, args?)` — run a saved workflow inline. See **Saved
|
|
65
|
+
workflows and workflow()**.
|
|
66
|
+
- `args` — the structured value the caller passed, or `undefined`.
|
|
67
|
+
- `budget` — `budget.total` (`null` = uncapped) and `budget.spent()`.
|
|
68
|
+
|
|
69
|
+
Pass THUNKS to `parallel()`, not eager calls: `parallel([() => agent(...)])`,
|
|
70
|
+
not `parallel([agent(...)])`. The eager form is refused outright: a
|
|
71
|
+
non-function element rejects the whole batch, and by then every `agent()` in it
|
|
72
|
+
has already been admitted, counted against the caps, and spent — with its
|
|
73
|
+
result discarded.
|
|
74
|
+
|
|
75
|
+
A script must be deterministic so a resume replays the same call sequence.
|
|
76
|
+
`Math.random()` throws, and so does all of `Date` — `new Date()`,
|
|
77
|
+
`Date.now()`, `Date.parse()` and `Date.UTC()` alike. Pass timestamps in via
|
|
78
|
+
`args`, or stamp the result after the workflow returns.
|
|
79
|
+
|
|
80
|
+
Scripts run in a `node:vm` sandbox with no filesystem, shell, network, or
|
|
81
|
+
environment access. All I/O happens through the prompts you give the agents, so
|
|
82
|
+
say explicitly what each one should read and whether it may edit files.
|
|
83
|
+
|
|
84
|
+
## agent() options
|
|
85
|
+
|
|
86
|
+
`agent(prompt, { label?, phase?, schema?, model?, effort?, agentType?, isolation?, workingDir?, stallMs?, disallowedTools? })`
|
|
87
|
+
|
|
88
|
+
- `label` (string) — the name shown in the run views and the failures list.
|
|
89
|
+
Make it unique per dispatch: a failure line carries only the label and the
|
|
90
|
+
error, so two failed dispatches that share a label cannot be told apart.
|
|
91
|
+
- `phase` (string) — opens a named phase at this call, exactly as `phase(title)`
|
|
92
|
+
would: this dispatch and every dispatch issued after it are attributed to that
|
|
93
|
+
phase. It is not scoped to the one call, so in a fan-out open phases with
|
|
94
|
+
`phase()` between groups rather than per dispatch.
|
|
95
|
+
- `schema` (JSON Schema object) — the subagent must deliver its result by
|
|
96
|
+
calling `structured_output` with arguments matching the schema; agent()
|
|
97
|
+
resolves to the validated object. After two in-conversation nudges without a
|
|
98
|
+
valid result, it resolves to null and the failure is recorded as "subagent
|
|
99
|
+
completed without calling StructuredOutput (after 2 in-conversation nudges)";
|
|
100
|
+
check for null.
|
|
101
|
+
- `agentType` (string) — resolves against the declarative-agents registry
|
|
102
|
+
(`.qwen/agents/<name>.md`, project then user then built-in). Unresolved names
|
|
103
|
+
make the admitted agent() resolve to null and record "agent({agentType}):
|
|
104
|
+
agent type 'X' not found"; check for null.
|
|
105
|
+
- `model` (string) — per-call model override; routes provider correctly via the
|
|
106
|
+
subagent runtime view.
|
|
107
|
+
- `effort` (`'low'` | `'medium'` | `'high'` | `'xhigh'` | `'max'`) — the
|
|
108
|
+
reasoning effort for this one agent. It is limited to the tiers `/effort`
|
|
109
|
+
offers for the agent's model or, for a model whose settings declare none, to
|
|
110
|
+
the tiers its provider's built-in table accepts: a tier the model does not
|
|
111
|
+
offer becomes the next stronger tier it does offer, or its strongest tier
|
|
112
|
+
when none is stronger. A model that offers no tiers, or thinking turned off
|
|
113
|
+
for the session or the model, leaves the agent with the effort it would have
|
|
114
|
+
had without the option. The session's own effort is never changed, and an
|
|
115
|
+
explicit tier replaces any thinking budget the agent would otherwise inherit;
|
|
116
|
+
a thinking setting fixed in the provider settings (such as `extra_body` or
|
|
117
|
+
`samplingParams`) still takes precedence over the tier, as it does over
|
|
118
|
+
`/effort`. Omitting `effort` inherits the session's effort only while the
|
|
119
|
+
agent stays on the session's provider: a `model` override that switches
|
|
120
|
+
provider starts from that model's own reasoning settings, so pass `effort`
|
|
121
|
+
there. Aliases such as `'med'` and `'x-high'` are accepted; any other value
|
|
122
|
+
rejects the call. Use `'low'` for cheap mechanical stages and the higher tiers
|
|
123
|
+
only for the hardest verify or judge stages. A different effort is a
|
|
124
|
+
different resume cache key.
|
|
125
|
+
- `isolation` — `'worktree'` provisions a fresh git worktree under
|
|
126
|
+
`<projectRoot>/.qwen/worktrees/agent-<7hex>`; the worktree is auto-removed if
|
|
127
|
+
no changes, otherwise the path and branch are returned alongside the result.
|
|
128
|
+
`'remote'` makes the admitted agent() resolve to null and records
|
|
129
|
+
"agent({isolation:'remote'}) is not available in this build". A `'worktree'`
|
|
130
|
+
dispatch is also refused — it resolves to null with the reason recorded —
|
|
131
|
+
when the session is already inside a worktree (nested isolation worktrees are
|
|
132
|
+
not supported; to run agents in that worktree, pass it as `workingDir`), when
|
|
133
|
+
git is not available or the directory is not a git repository, when the
|
|
134
|
+
parent working tree has uncommitted changes (the subagent would see a stale
|
|
135
|
+
HEAD), or when the worktree cannot be created. The nested case refuses every
|
|
136
|
+
dispatch, so rule it out before a large `isolation: 'worktree'` fan-out.
|
|
137
|
+
- `workingDir` (string) — pin the subagent to an EXISTING git worktree of this
|
|
138
|
+
repository that the caller owns; nothing is created and nothing is removed.
|
|
139
|
+
Use it when the directory the agent must work in already exists and its
|
|
140
|
+
uncommitted state is the point (a review worktree, a checkout a previous step
|
|
141
|
+
provisioned) — exactly the case isolation cannot serve. Mutually exclusive
|
|
142
|
+
with `isolation`. The path must be a linked worktree of this repository
|
|
143
|
+
registered via `git worktree add` (it may live anywhere on disk) — the main
|
|
144
|
+
checkout is not eligible.
|
|
145
|
+
- `stallMs` (number, ms) — a no-progress stall watchdog, not a wall-clock cap.
|
|
146
|
+
The dispatch is aborted and retried (up to 3 attempts total) after this many
|
|
147
|
+
milliseconds with no observable subagent progress — including before the
|
|
148
|
+
first response arrives; the timer is suspended while a tool is in flight, so
|
|
149
|
+
a legitimately slow tool is not a stall. Default 180000 (override via
|
|
150
|
+
`QWEN_CODE_WORKFLOW_STALL_SECONDS`, whole seconds); `0` disables the
|
|
151
|
+
watchdog. Wall time per attempt is bounded separately.
|
|
152
|
+
- `disallowedTools` (string[]) — tools this agent may not call, on top of the
|
|
153
|
+
floor below; it can only narrow the agent's tools, never re-enable one. Name a
|
|
154
|
+
tool by its tool name (`run_shell_command`, `write_file`, `edit`) or its
|
|
155
|
+
display name (`Shell`, `WriteFile`, `Edit`), or deny MCP tools with
|
|
156
|
+
`mcp__<server>` (every tool of that server), `mcp__<server>__*`, or
|
|
157
|
+
`mcp__<server>__<tool>`. An entry that names no built-in or registered tool
|
|
158
|
+
and is not an `mcp__` pattern, such as `'Bash'`, resolves the call to null
|
|
159
|
+
with the reason recorded rather than silently denying nothing. Entries must
|
|
160
|
+
be non-empty strings without surrounding whitespace, or the call is rejected.
|
|
161
|
+
A `schema` agent whose denies, from this call or from its `agentType`,
|
|
162
|
+
include `structured_output` resolves to null with the reason recorded,
|
|
163
|
+
because it would have no way to return its result. The resume cache key
|
|
164
|
+
depends on which tools are denied, not on their order or duplicates, and not
|
|
165
|
+
on whether a built-in tool is named by its tool name or its display name.
|
|
166
|
+
|
|
167
|
+
Workflow subagents can never use AskUserQuestion, SendMessage, Monitor,
|
|
168
|
+
EnterPlanMode, ExitPlanMode, or the Agent tool, whatever their `agentType`. A
|
|
169
|
+
subagent therefore cannot fan out further and cannot ask anyone anything: the
|
|
170
|
+
script owns all fan-out, and every ambiguity has to be resolved in the prompt
|
|
171
|
+
it is given. Never ask a subagent to spawn its own verifiers — dispatch them
|
|
172
|
+
from the script.
|
|
173
|
+
|
|
174
|
+
## What agent() returns
|
|
175
|
+
|
|
176
|
+
A subagent's final text, or the validated object under `schema`.
|
|
177
|
+
|
|
178
|
+
`agent()` resolves to `null` when that admitted agent fails on its own —
|
|
179
|
+
including turn/time caps, model or setup errors, missing structured output, and
|
|
180
|
+
exhausted stall retries — and it does so for a bare `await agent()` exactly as
|
|
181
|
+
it does inside `parallel()`/`pipeline()`, so check for `null` wherever you read
|
|
182
|
+
a result. Call-shape validation failures — such as an empty prompt, an
|
|
183
|
+
unsupported option combination, or an invalid option value — reject a bare
|
|
184
|
+
call; inside `parallel()`/`pipeline()`, the surrounding ordinary thunk or stage
|
|
185
|
+
rejection becomes a position-aligned `null`. Run-level rejections no later call
|
|
186
|
+
could survive — the token budget, the 1000-agent cap, and cancellation — throw
|
|
187
|
+
and end a `parallel()`/`pipeline()` batch. An admitted agent that fails and
|
|
188
|
+
settles to `null` still counts as dispatched and is named, with its error, in
|
|
189
|
+
the run's failures list; a `null` returned by an ordinary thunk or stage is not
|
|
190
|
+
an agent dispatch.
|
|
191
|
+
|
|
192
|
+
A `pipeline()` stage that returns `null` — or throws — drops that item: its
|
|
193
|
+
remaining stages are skipped and its slot in the result is `null`. So a `null`
|
|
194
|
+
check belongs in the stage that dispatched the agent, never in a later stage,
|
|
195
|
+
which will not run for that item.
|
|
196
|
+
|
|
197
|
+
A result must be JSON-serializable to survive the sandbox boundary and the
|
|
198
|
+
resume journal. A thunk that resolves to something that is not becomes `null`
|
|
199
|
+
at its index.
|
|
200
|
+
|
|
201
|
+
## Limits
|
|
202
|
+
|
|
203
|
+
- Concurrency: `max(2, min(16, availableParallelism()-2))` agents in flight per
|
|
204
|
+
run — `availableParallelism()` follows CPU affinity and container CPU limits,
|
|
205
|
+
not the host's core count — override via `QWEN_CODE_MAX_WORKFLOW_CONCURRENCY`
|
|
206
|
+
(clamped to 64).
|
|
207
|
+
- 1000 `agent()` calls per run, override via `QWEN_CODE_MAX_WORKFLOW_AGENTS`
|
|
208
|
+
(clamped to 10000). The call past the cap throws.
|
|
209
|
+
- 30-minute wall-clock cap per run, override via
|
|
210
|
+
`QWEN_CODE_MAX_WORKFLOW_SECONDS` (applied as given). A fan-out near the agent
|
|
211
|
+
cap will not fit inside the default cap.
|
|
212
|
+
- 30 seconds for the script's synchronous code before its first `await`, with
|
|
213
|
+
no override. A synchronous loop that runs longer is aborted.
|
|
214
|
+
- Per subagent attempt: 50 turns (`QWEN_CODE_WORKFLOW_AGENT_MAX_TURNS`, clamped
|
|
215
|
+
to 500) and 10 minutes (`QWEN_CODE_WORKFLOW_AGENT_MAX_MINUTES`, clamped
|
|
216
|
+
to 100). Raise them for legitimately long work rather than letting agents
|
|
217
|
+
come back `null` — but a value above the clamp is silently cut down to it.
|
|
218
|
+
- Stall retries: 3 attempts per `agent()` call; the stall timeout itself
|
|
219
|
+
(`QWEN_CODE_WORKFLOW_STALL_SECONDS`) is applied as given.
|
|
220
|
+
- Tokens: a per-run output-token cap may be in effect — read `budget.total`
|
|
221
|
+
(`null` = uncapped) before committing to a large fan-out, because once the
|
|
222
|
+
cap is reached every further `agent()` call is refused.
|
|
223
|
+
|
|
224
|
+
## Default to `pipeline()`
|
|
225
|
+
|
|
226
|
+
`pipeline()` runs each item through every stage independently — item A can be
|
|
227
|
+
in stage 3 while item B is still in stage 1 — so wall-clock is the slowest
|
|
228
|
+
single chain. `parallel()` is a barrier: it waits for every thunk before
|
|
229
|
+
anything moves on, so it costs the slowest item of every stage.
|
|
230
|
+
|
|
231
|
+
A barrier is right only when a stage genuinely needs cross-item context:
|
|
232
|
+
deduplicating or merging across the full result set before expensive downstream
|
|
233
|
+
work, exiting early when the total count is zero, or a prompt that compares one
|
|
234
|
+
finding against all the others. It is not justified by needing to flatten, map,
|
|
235
|
+
or filter between stages (do that inside a pipeline stage), by two stages being
|
|
236
|
+
conceptually separate, or by the code reading more tidily. Smell test:
|
|
237
|
+
`parallel()` → a pure transform → `parallel()` is a pipeline someone wrote with
|
|
238
|
+
an unnecessary barrier. When in doubt, `pipeline()`.
|
|
239
|
+
|
|
240
|
+
## Verify before believing
|
|
241
|
+
|
|
242
|
+
A subagent's answer is a claim, not a result. For findings that matter, spawn
|
|
243
|
+
independent verifiers prompted to _refute_, and drop what a majority refutes.
|
|
244
|
+
When a claim can be wrong in several different ways, give each verifier a
|
|
245
|
+
distinct lens (correctness, security, performance, does it actually reproduce)
|
|
246
|
+
— diversity catches what repetition cannot. For a wide solution space, generate
|
|
247
|
+
several independent attempts, judge them in parallel, and synthesize from the
|
|
248
|
+
winner while grafting the best ideas from the rest.
|
|
249
|
+
|
|
250
|
+
## Converge deliberately
|
|
251
|
+
|
|
252
|
+
For discovery of unknown size, keep running finders until some number of
|
|
253
|
+
consecutive rounds turn up nothing new; a fixed round count stops partway into
|
|
254
|
+
the tail. Deduplicate each round against everything already seen, never against
|
|
255
|
+
only what survived judging — otherwise rejected findings reappear every round
|
|
256
|
+
and the loop never terminates. A closing pass that asks what is still missing
|
|
257
|
+
(a search angle never run, a claim never verified, a file never read) usually
|
|
258
|
+
produces the next round of real work.
|
|
259
|
+
|
|
260
|
+
## Report honestly
|
|
261
|
+
|
|
262
|
+
Scale the fleet to what was actually asked: a quick check gets a few agents and
|
|
263
|
+
one verification pass; an explicit request to be thorough or exhaustive earns a
|
|
264
|
+
larger pool and a multi-vote adversarial round. Whenever a run bounds its own
|
|
265
|
+
coverage — top-N, sampling, no retry — `log()` what was dropped. Silent
|
|
266
|
+
truncation reads as full coverage, which is worse than a smaller honest result.
|
|
267
|
+
|
|
268
|
+
## Saved workflows and workflow()
|
|
269
|
+
|
|
270
|
+
`workflow(nameOrRef, args?)` runs a saved workflow inline under this run's caps
|
|
271
|
+
and nests one level only — a workflow reached through `workflow()` cannot call
|
|
272
|
+
`workflow()` itself, and doing so throws.
|
|
273
|
+
|
|
274
|
+
It takes one of two forms. `workflow('<name>')` resolves a name against
|
|
275
|
+
`<projectRoot>/.qwen/workflows` (project scope, also surfaced as `/<name>`
|
|
276
|
+
slash commands) and `~/.qwen/workflows` (user scope, lower precedence when both
|
|
277
|
+
define the same name). `workflow({ scriptPath: '<absolute path>' })` loads a
|
|
278
|
+
script file directly from either of those directories or from the
|
|
279
|
+
generated-scripts root (`$QWEN_CODE_PROJECT_DIR/workflows/generated` — the
|
|
280
|
+
per-project runtime dir, not the project tree); a path outside those roots is
|
|
281
|
+
refused. A bare string is always a name: a path passed as a string is rejected
|
|
282
|
+
as an invalid workflow name. At the top level that rejection ends the run;
|
|
283
|
+
inside `parallel()`/`pipeline()` it becomes a position-aligned `null` like any
|
|
284
|
+
other thunk rejection — with no agent dispatched and nothing in the failures
|
|
285
|
+
list — so null-check a `workflow()` result too.
|
|
286
|
+
|
|
287
|
+
To create or edit a saved workflow, use the `workflow-creator` skill — it owns
|
|
288
|
+
the file layout, naming rules, and the save round-trip.
|
|
289
|
+
|
|
290
|
+
## Resume and diagnostics
|
|
291
|
+
|
|
292
|
+
Every run hands back its runId, the script's path on disk, and its journal
|
|
293
|
+
path. An inline script is persisted under the generated-scripts root, so a
|
|
294
|
+
resume edits that file and passes the path back instead of re-sending the whole
|
|
295
|
+
source.
|
|
296
|
+
|
|
297
|
+
`resumeFromRunId` replays a prior run: each `agent()` call's journal key hashes
|
|
298
|
+
its prompt and opts chained in call order, so calls whose rolling prefix-hash
|
|
299
|
+
still matches are served from cache for the longest unchanged prefix, and the
|
|
300
|
+
first changed or missing call onward runs live. Post-processing after the last
|
|
301
|
+
agent can therefore change freely without losing the cache. Pass the same
|
|
302
|
+
`args` — they seed the chain, so different args re-run everything.
|
|
303
|
+
|
|
304
|
+
The journal is one JSON line per event: a `started` line when an agent is
|
|
305
|
+
dispatched, then a `result` line when it returns a value or a `failed` line
|
|
306
|
+
when it settles without one. Only `result` lines feed the resume cache. A
|
|
307
|
+
`started` line with neither after it means the run was interrupted with that
|
|
308
|
+
agent in flight — not that the agent is broken. Read the journal before
|
|
309
|
+
diagnosing an empty or surprising result: a cached result can itself be empty,
|
|
310
|
+
and a `null` slot in the output means an agent failed, not that the work found
|
|
311
|
+
nothing.
|
|
312
|
+
|
|
313
|
+
Runs appear in the background-tasks view and the `/workflows` dialog (live
|
|
314
|
+
phase tree, token usage, cooperative pause/resume, cancel);
|
|
315
|
+
`run_in_background: true` returns a run handle immediately in the interactive
|
|
316
|
+
TUI and delivers completion through the conversation.
|
|
317
|
+
|
|
318
|
+
## Worked example
|
|
319
|
+
|
|
320
|
+
Review a change set across several dimensions, verifying each finding as soon
|
|
321
|
+
as its dimension is done — a pipeline, so a slow dimension never holds up
|
|
322
|
+
verification of a fast one.
|
|
323
|
+
|
|
324
|
+
```js
|
|
325
|
+
export const meta = {
|
|
326
|
+
name: 'Review changes',
|
|
327
|
+
description: 'Review the diff across dimensions and verify every finding',
|
|
328
|
+
phases: [
|
|
329
|
+
{ title: 'Review', detail: 'One reviewer per dimension reads the diff' },
|
|
330
|
+
{
|
|
331
|
+
title: 'Verify',
|
|
332
|
+
detail: 'An independent verifier tries to refute each finding',
|
|
333
|
+
},
|
|
334
|
+
],
|
|
335
|
+
};
|
|
336
|
+
|
|
337
|
+
const DIMENSIONS = [
|
|
338
|
+
{
|
|
339
|
+
key: 'correctness',
|
|
340
|
+
lens: 'logic errors, wrong edge cases, broken invariants',
|
|
341
|
+
},
|
|
342
|
+
{
|
|
343
|
+
key: 'security',
|
|
344
|
+
lens: 'injection, path traversal, secrets, unsafe defaults',
|
|
345
|
+
},
|
|
346
|
+
{
|
|
347
|
+
key: 'performance',
|
|
348
|
+
lens: 'accidental O(n^2), unbounded memory, chatty I/O',
|
|
349
|
+
},
|
|
350
|
+
];
|
|
351
|
+
|
|
352
|
+
const FINDINGS = {
|
|
353
|
+
type: 'object',
|
|
354
|
+
properties: {
|
|
355
|
+
findings: {
|
|
356
|
+
type: 'array',
|
|
357
|
+
items: {
|
|
358
|
+
type: 'object',
|
|
359
|
+
properties: {
|
|
360
|
+
file: { type: 'string' },
|
|
361
|
+
claim: { type: 'string' },
|
|
362
|
+
},
|
|
363
|
+
required: ['file', 'claim'],
|
|
364
|
+
},
|
|
365
|
+
},
|
|
366
|
+
},
|
|
367
|
+
required: ['findings'],
|
|
368
|
+
};
|
|
369
|
+
|
|
370
|
+
const VERDICT = {
|
|
371
|
+
type: 'object',
|
|
372
|
+
properties: { isReal: { type: 'boolean' }, why: { type: 'string' } },
|
|
373
|
+
required: ['isReal', 'why'],
|
|
374
|
+
};
|
|
375
|
+
|
|
376
|
+
const target = args?.target;
|
|
377
|
+
if (!target) {
|
|
378
|
+
throw new Error('args.target is required, e.g. { target: "HEAD~1..HEAD" }');
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
phase('Review');
|
|
382
|
+
const reviewed = await pipeline(
|
|
383
|
+
DIMENSIONS,
|
|
384
|
+
// The stage that dispatches an agent is the stage that handles its null:
|
|
385
|
+
// returning null here would drop the dimension and skip the verify stage.
|
|
386
|
+
async (dimension) => {
|
|
387
|
+
const review = await agent(
|
|
388
|
+
`Review the changes in ${target} for ${dimension.lens}. ` +
|
|
389
|
+
`Read the files; do not edit anything.`,
|
|
390
|
+
{ label: `review:${dimension.key}`, schema: FINDINGS },
|
|
391
|
+
);
|
|
392
|
+
if (review === null) {
|
|
393
|
+
log(`review:${dimension.key} came back empty — its findings are missing`);
|
|
394
|
+
return [];
|
|
395
|
+
}
|
|
396
|
+
return review.findings;
|
|
397
|
+
},
|
|
398
|
+
(findings, dimension) => {
|
|
399
|
+
phase('Verify');
|
|
400
|
+
return parallel(
|
|
401
|
+
findings.map((finding, index) => async () => {
|
|
402
|
+
const label = `verify:${dimension.key}:${index + 1}`;
|
|
403
|
+
const verdict = await agent(
|
|
404
|
+
`Adversarially verify this claim about ${finding.file}: ` +
|
|
405
|
+
`"${finding.claim}". Try to REFUTE it. Read the code first.`,
|
|
406
|
+
{ label, schema: VERDICT },
|
|
407
|
+
);
|
|
408
|
+
if (verdict === null) {
|
|
409
|
+
log(`${label} came back empty — "${finding.claim}" is unverified`);
|
|
410
|
+
return null;
|
|
411
|
+
}
|
|
412
|
+
return { ...finding, verdict };
|
|
413
|
+
}),
|
|
414
|
+
);
|
|
415
|
+
},
|
|
416
|
+
);
|
|
417
|
+
|
|
418
|
+
// A stage that throws drops its dimension to a null slot. Say which ones
|
|
419
|
+
// before flattening, or the drop reads as a dimension that found nothing.
|
|
420
|
+
reviewed.forEach((entries, index) => {
|
|
421
|
+
if (entries === null) {
|
|
422
|
+
log(
|
|
423
|
+
`${DIMENSIONS[index].key} was dropped before its findings were verified`,
|
|
424
|
+
);
|
|
425
|
+
}
|
|
426
|
+
});
|
|
427
|
+
const verdicts = reviewed.filter((entries) => entries !== null).flat();
|
|
428
|
+
const confirmed = verdicts.filter(
|
|
429
|
+
(entry) => entry !== null && entry.verdict.isReal,
|
|
430
|
+
);
|
|
431
|
+
const refuted = verdicts.filter(
|
|
432
|
+
(entry) => entry !== null && !entry.verdict.isReal,
|
|
433
|
+
);
|
|
434
|
+
log(`confirmed ${confirmed.length} finding(s), refuted ${refuted.length}`);
|
|
435
|
+
return { confirmed, refuted };
|
|
436
|
+
```
|
|
437
|
+
|
|
438
|
+
Note what the example does with failure: it refuses to run without the input
|
|
439
|
+
it needs, handles each `null` in the stage that dispatched the agent, gives
|
|
440
|
+
every verify dispatch its own label, `log()`s every dimension and agent it
|
|
441
|
+
loses, and returns what the verifiers refuted next to what they confirmed — a
|
|
442
|
+
verifier can be wrong too, and nothing is silently omitted.
|
|
@@ -32,7 +32,7 @@ export const meta = {
|
|
|
32
32
|
};
|
|
33
33
|
```
|
|
34
34
|
|
|
35
|
-
- Use the sandbox globals
|
|
35
|
+
- Use the sandbox globals `phase(title)`, `log(message)`, `agent(prompt, options?)`, `parallel(thunks)`, `pipeline(items, ...stages)`, `workflow(nameOrRef, args?)`, `args`, and `budget`. The `workflow-authoring` skill is the full reference for them — load it before writing anything beyond a trivial script.
|
|
36
36
|
- Scripts cannot import modules or access the filesystem, shell, environment, or network directly. Put required reads and actions in explicit agent prompts.
|
|
37
37
|
- Give every agent a complete, scoped prompt and a concise `label`. State whether it may edit files.
|
|
38
38
|
- Express real concurrency as `parallel([() => agent(...), () => agent(...)])`. Do not pass already-started promises to `parallel`.
|
|
@@ -4,109 +4,113 @@ import {
|
|
|
4
4
|
MINIMUM_MAX_HEIGHT,
|
|
5
5
|
MaxSizedBox,
|
|
6
6
|
setMaxSizedBoxDebugging
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-OZEV3R3S.js";
|
|
8
8
|
import "./chunk-4LIPOIXS.js";
|
|
9
9
|
import "./chunk-SV5PQVQE.js";
|
|
10
|
-
import "./chunk-O4KNCAX4.js";
|
|
11
|
-
import "./chunk-5QWWOFGG.js";
|
|
12
10
|
import "./chunk-2XRE4KE4.js";
|
|
11
|
+
import "./chunk-NCPFOLM2.js";
|
|
12
|
+
import "./chunk-5QWWOFGG.js";
|
|
13
13
|
import "./chunk-47ECGEJC.js";
|
|
14
14
|
import "./chunk-2MIN6GRR.js";
|
|
15
15
|
import "./chunk-QHTIBUWB.js";
|
|
16
16
|
import "./chunk-RKUWKYED.js";
|
|
17
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-BS7ON54G.js";
|
|
18
18
|
import "./chunk-GELRJXE2.js";
|
|
19
19
|
import "./chunk-32CM56LO.js";
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-Y2MYW47X.js";
|
|
20
|
+
import "./chunk-6WXVEDT2.js";
|
|
22
21
|
import "./chunk-LJZSMWOH.js";
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-ZRZZLM37.js";
|
|
23
|
+
import "./chunk-YVF4PKCV.js";
|
|
24
|
+
import "./chunk-EKMJR7M3.js";
|
|
25
|
+
import "./chunk-EDB556X7.js";
|
|
26
|
+
import "./chunk-QR4Q425T.js";
|
|
27
|
+
import "./chunk-C5ABXOC2.js";
|
|
27
28
|
import "./chunk-DJXSOEFB.js";
|
|
28
|
-
import "./chunk-
|
|
29
|
-
import "./chunk-532WHF4F.js";
|
|
29
|
+
import "./chunk-5VQR2DD7.js";
|
|
30
30
|
import "./chunk-BUQN5LTI.js";
|
|
31
31
|
import "./chunk-ZPJWUGCS.js";
|
|
32
|
-
import "./chunk-
|
|
33
|
-
import "./chunk-
|
|
34
|
-
import "./chunk-
|
|
35
|
-
import "./chunk-
|
|
32
|
+
import "./chunk-YM6KUQ2S.js";
|
|
33
|
+
import "./chunk-FFBP5POK.js";
|
|
34
|
+
import "./chunk-C3VNHDWJ.js";
|
|
35
|
+
import "./chunk-CFSBWJBB.js";
|
|
36
36
|
import "./chunk-GOFAQQZA.js";
|
|
37
|
+
import "./chunk-HEOH7JZY.js";
|
|
37
38
|
import "./chunk-TWPJO254.js";
|
|
38
39
|
import "./chunk-CQ35AJ4Z.js";
|
|
39
40
|
import "./chunk-65I7S4Z3.js";
|
|
40
|
-
import "./chunk-6HUXPLB5.js";
|
|
41
41
|
import "./chunk-7CLLH5TI.js";
|
|
42
|
-
import "./chunk-
|
|
43
|
-
import "./chunk-
|
|
44
|
-
import "./chunk-
|
|
45
|
-
import "./chunk-
|
|
46
|
-
import "./chunk-
|
|
42
|
+
import "./chunk-WK6DEH3Q.js";
|
|
43
|
+
import "./chunk-6PVPNMXU.js";
|
|
44
|
+
import "./chunk-QQL5BFOL.js";
|
|
45
|
+
import "./chunk-ME4JBHSB.js";
|
|
46
|
+
import "./chunk-GNV2SFO7.js";
|
|
47
|
+
import "./chunk-5EZRLTLQ.js";
|
|
47
48
|
import "./chunk-QHWCP53L.js";
|
|
48
|
-
import "./chunk-
|
|
49
|
+
import "./chunk-3LMDSCLU.js";
|
|
49
50
|
import "./chunk-O6GEWCJA.js";
|
|
50
|
-
import "./chunk-
|
|
51
|
-
import "./chunk-
|
|
52
|
-
import "./chunk-
|
|
53
|
-
import "./chunk-DTNV6UZY.js";
|
|
51
|
+
import "./chunk-WKVZES7O.js";
|
|
52
|
+
import "./chunk-NJ2OFVUX.js";
|
|
53
|
+
import "./chunk-HFJSQ4GL.js";
|
|
54
54
|
import "./chunk-QJNDUTOL.js";
|
|
55
|
-
import "./chunk-
|
|
56
|
-
import "./chunk-
|
|
55
|
+
import "./chunk-V545KI73.js";
|
|
56
|
+
import "./chunk-MQRLLBMQ.js";
|
|
57
57
|
import "./chunk-ELRMZTPF.js";
|
|
58
|
+
import "./chunk-U6H3XTFA.js";
|
|
59
|
+
import "./chunk-ACHCT36C.js";
|
|
58
60
|
import "./chunk-CHEIIBT3.js";
|
|
59
|
-
import "./chunk-
|
|
60
|
-
import "./chunk-
|
|
61
|
+
import "./chunk-AEWCOE64.js";
|
|
62
|
+
import "./chunk-OWUAZXXN.js";
|
|
61
63
|
import "./chunk-CH2YDT6X.js";
|
|
62
64
|
import "./chunk-JX6XHPTX.js";
|
|
63
65
|
import "./chunk-ZSTCM3MX.js";
|
|
64
66
|
import "./chunk-MLXTMF7H.js";
|
|
65
|
-
import "./chunk-
|
|
66
|
-
import "./chunk-
|
|
67
|
-
import "./chunk-
|
|
68
|
-
import "./chunk-
|
|
69
|
-
import "./chunk-
|
|
67
|
+
import "./chunk-AXZMWAJV.js";
|
|
68
|
+
import "./chunk-NXUZFW3G.js";
|
|
69
|
+
import "./chunk-WFNEY5G7.js";
|
|
70
|
+
import "./chunk-GSS4SZNG.js";
|
|
71
|
+
import "./chunk-BW2SMO6L.js";
|
|
70
72
|
import "./chunk-S6LOFUVP.js";
|
|
71
|
-
import "./chunk-
|
|
72
|
-
import "./chunk-
|
|
73
|
+
import "./chunk-VVI7MK3V.js";
|
|
74
|
+
import "./chunk-WBSJ6VPZ.js";
|
|
73
75
|
import "./chunk-G6UUOCUT.js";
|
|
74
76
|
import "./chunk-IZ2U57NY.js";
|
|
77
|
+
import "./chunk-Z72PLR74.js";
|
|
75
78
|
import "./chunk-NUQ4GK5I.js";
|
|
76
|
-
import "./chunk-
|
|
77
|
-
import "./chunk-AXTFYDXT.js";
|
|
79
|
+
import "./chunk-CXXAZ2LZ.js";
|
|
78
80
|
import "./chunk-NAVJD2PQ.js";
|
|
79
|
-
import "./chunk-
|
|
80
|
-
import "./chunk-
|
|
81
|
-
import "./chunk-QHMLYMMS.js";
|
|
81
|
+
import "./chunk-66N6C4EH.js";
|
|
82
|
+
import "./chunk-FMLBBXHB.js";
|
|
82
83
|
import "./chunk-VNOVK4I7.js";
|
|
83
|
-
import "./chunk-
|
|
84
|
+
import "./chunk-S7UQ3V2H.js";
|
|
84
85
|
import "./chunk-JL6APGBX.js";
|
|
85
86
|
import "./chunk-DJ2GSRLV.js";
|
|
86
|
-
import "./chunk-
|
|
87
|
-
import "./chunk-
|
|
87
|
+
import "./chunk-ZKIAGIGH.js";
|
|
88
|
+
import "./chunk-VGY2RGXL.js";
|
|
89
|
+
import "./chunk-C75BXMPM.js";
|
|
88
90
|
import "./chunk-KFFCDLKV.js";
|
|
89
|
-
import "./chunk-
|
|
90
|
-
import "./chunk-
|
|
91
|
+
import "./chunk-KP2FHIFR.js";
|
|
92
|
+
import "./chunk-L6DIANLD.js";
|
|
93
|
+
import "./chunk-NRUKL236.js";
|
|
91
94
|
import "./chunk-5ETULJLP.js";
|
|
92
|
-
import "./chunk-
|
|
95
|
+
import "./chunk-7MIBD3LG.js";
|
|
93
96
|
import "./chunk-VGC4I5JJ.js";
|
|
97
|
+
import "./chunk-QZW6WRB7.js";
|
|
94
98
|
import "./chunk-EDIDYZBT.js";
|
|
95
99
|
import "./chunk-HD7O6WLV.js";
|
|
96
|
-
import "./chunk-
|
|
100
|
+
import "./chunk-CFMZLE3L.js";
|
|
97
101
|
import "./chunk-WZAD4ZNJ.js";
|
|
98
|
-
import "./chunk-
|
|
102
|
+
import "./chunk-ARDHE6MM.js";
|
|
99
103
|
import "./chunk-FPGTNKCP.js";
|
|
100
104
|
import "./chunk-TIGXX4PA.js";
|
|
101
|
-
import "./chunk-
|
|
105
|
+
import "./chunk-6TMXX4Z4.js";
|
|
102
106
|
import "./chunk-XFFRI3WM.js";
|
|
103
107
|
import "./chunk-ERU3SDXT.js";
|
|
104
108
|
import "./chunk-EWJTAP3Y.js";
|
|
105
109
|
import "./chunk-HHJLM3WQ.js";
|
|
106
|
-
import "./chunk-
|
|
110
|
+
import "./chunk-4Y2I3CI3.js";
|
|
107
111
|
import "./chunk-74TONY4F.js";
|
|
108
|
-
import "./chunk-
|
|
109
|
-
import "./chunk-
|
|
112
|
+
import "./chunk-SYROIHU7.js";
|
|
113
|
+
import "./chunk-RSWBT7AZ.js";
|
|
110
114
|
import "./chunk-ZAFYHRVY.js";
|
|
111
115
|
import "./chunk-TBWQLLFO.js";
|
|
112
116
|
import "./chunk-UKMWZ5NS.js";
|