@qwen-code/qwen-code 0.21.13 → 0.21.14-preview.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (293) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +13 -7
  2. package/bundled/qc-helper/docs/features/code-review.md +5 -1
  3. package/bundled/qc-helper/docs/features/commands.md +120 -8
  4. package/bundled/qc-helper/docs/features/sub-agents.md +2 -2
  5. package/bundled/qc-helper/docs/qwen-serve-deploy-local.md +1 -1
  6. package/bundled/qc-helper/docs/qwen-serve.md +20 -3
  7. package/bundled/review/SKILL.md +50 -30
  8. package/chunks/{MaxSizedBox-UQALOVVT.js → MaxSizedBox-3PZITE2Y.js} +24 -23
  9. package/chunks/{StandaloneSessionPicker-KEGXNUG6.js → StandaloneSessionPicker-2C34PNGO.js} +41 -40
  10. package/chunks/{acp-startup-profiler-NMDXYGDN.js → acp-startup-profiler-HUYGO57H.js} +2 -2
  11. package/chunks/{acpAgent-XPES32S7.js → acpAgent-3J4NHAYT.js} +626 -141
  12. package/chunks/{agent-DPTOZFEM.js → agent-VFX4RPP5.js} +22 -21
  13. package/chunks/{agent-headless-GJCQMURW.js → agent-headless-6WCF4J6N.js} +22 -21
  14. package/chunks/{anthropicContentGenerator-G7BVXTKN.js → anthropicContentGenerator-M7XRJMSK.js} +3 -3
  15. package/chunks/{bridge-YNQBAA4Z.js → bridge-XR5ZSR7U.js} +26 -25
  16. package/chunks/{ca-4CQ6MYNQ.js → ca-SLZJD6QH.js} +8 -0
  17. package/chunks/{channel-management-service-GWY2GAIC.js → channel-management-service-X6LCQUAD.js} +1 -1
  18. package/chunks/{channel-settings-store-WNWYFHG7.js → channel-settings-store-Z7BUEUJE.js} +30 -29
  19. package/chunks/{channel-worker-group-7LXCMZ77.js → channel-worker-group-TJ35JDPE.js} +2 -2
  20. package/chunks/{channel-worker-manager-RYEME4ZZ.js → channel-worker-manager-G5LKWGOG.js} +2 -2
  21. package/chunks/{chunk-MLPXSYXR.js → chunk-25GHLMQQ.js} +25 -16
  22. package/chunks/chunk-2C6HJMG3.js +757 -0
  23. package/chunks/{chunk-TUGSVUJB.js → chunk-2JXDFSVE.js} +5 -5
  24. package/chunks/{chunk-AS5IN4GK.js → chunk-2OA3JMRD.js} +3 -3
  25. package/chunks/chunk-3PWCMXIR.js +9169 -0
  26. package/chunks/{chunk-U3VNBPUO.js → chunk-4KQ2TI2K.js} +2 -2
  27. package/chunks/{chunk-NEFOOD54.js → chunk-4V4DFJBS.js} +2 -2
  28. package/chunks/{chunk-OMLJNPBE.js → chunk-4ZMS3JCR.js} +1 -0
  29. package/chunks/{chunk-PP4FUZNV.js → chunk-55PIFSP2.js} +2 -2
  30. package/chunks/{chunk-3U3VAL47.js → chunk-57KOJ2KZ.js} +1 -1
  31. package/chunks/{chunk-A4QRWUDE.js → chunk-5IYS4WWR.js} +1 -1
  32. package/chunks/{chunk-TS6625XH.js → chunk-5MK45KZ3.js} +9 -5
  33. package/chunks/{chunk-CU6GJD55.js → chunk-6DFPR7CS.js} +1 -1
  34. package/chunks/{chunk-V57QC6WW.js → chunk-6LAPGPVA.js} +5 -3
  35. package/chunks/{chunk-OOQUVWIG.js → chunk-6PDOHRN6.js} +4 -4
  36. package/chunks/{chunk-UZPM4XHR.js → chunk-6VDPDHIP.js} +29 -8
  37. package/chunks/{chunk-O4D7SPJN.js → chunk-73G3Z7QS.js} +3 -3
  38. package/chunks/{chunk-QIH2HAEN.js → chunk-7OCSX7FC.js} +1 -1
  39. package/chunks/{chunk-OVZPVYZB.js → chunk-AKBOLMUF.js} +95 -17
  40. package/chunks/{chunk-DGK6P3BQ.js → chunk-AQBHJ2IG.js} +10 -10
  41. package/chunks/{chunk-JNDY2MDR.js → chunk-BOJNAPUE.js} +1 -1
  42. package/chunks/{chunk-NHDR76JX.js → chunk-BQWNIPTE.js} +1 -1
  43. package/chunks/{chunk-AA2BEKV3.js → chunk-CH5OFRV7.js} +1 -1
  44. package/chunks/{chunk-MS7GNABG.js → chunk-CXJHQVEK.js} +8 -0
  45. package/chunks/{chunk-K5IDV3PC.js → chunk-D34RDOLP.js} +12 -2
  46. package/chunks/{chunk-OXCMMLED.js → chunk-DGJ7O55J.js} +1 -1
  47. package/chunks/{chunk-BKPPWD33.js → chunk-DRKYT2TR.js} +1 -1
  48. package/chunks/{chunk-P7MPQI75.js → chunk-DVR7XKO5.js} +1 -1
  49. package/chunks/{chunk-MRMJCLIY.js → chunk-DZCV3ZYU.js} +2 -2
  50. package/chunks/{chunk-EZ5RP345.js → chunk-E5RS7LF4.js} +40 -9
  51. package/chunks/{chunk-4NFY2S7N.js → chunk-E7REAOTN.js} +15 -0
  52. package/chunks/chunk-EOCQCNV4.js +3887 -0
  53. package/chunks/{chunk-BVJS5BSP.js → chunk-FCTLOVYW.js} +1 -1
  54. package/chunks/{chunk-DGZEMW5R.js → chunk-FS5NGKWC.js} +1 -1
  55. package/chunks/{chunk-XHRY7BXD.js → chunk-G6FFFICU.js} +3 -3
  56. package/chunks/{chunk-NM5V5OVW.js → chunk-GV3OIADZ.js} +2 -2
  57. package/chunks/{chunk-QV5YN5YD.js → chunk-HGPMOXLZ.js} +5 -5
  58. package/chunks/{chunk-GMIEIY3Y.js → chunk-I3N2Z25H.js} +1 -1
  59. package/chunks/{chunk-RIAABG2K.js → chunk-I7NTHW4C.js} +1 -1
  60. package/chunks/{chunk-HUTNYWBG.js → chunk-IOTPI425.js} +18 -10
  61. package/chunks/{chunk-ZYYTZUI2.js → chunk-ISRHAMNL.js} +3 -3
  62. package/chunks/{chunk-BHILXOC3.js → chunk-J63PKMYA.js} +1 -1
  63. package/chunks/{chunk-KD5BOPLP.js → chunk-J6YS7Z25.js} +98 -4
  64. package/chunks/{chunk-GO7STP6N.js → chunk-K3CECR5C.js} +4 -4
  65. package/chunks/{chunk-RVOJ2FBP.js → chunk-KC4WMLZO.js} +1486 -10574
  66. package/chunks/{chunk-IGGGG5CX.js → chunk-KSGWAYNE.js} +4580 -1652
  67. package/chunks/{chunk-X26JYGTD.js → chunk-L6CCLB3G.js} +1 -1
  68. package/chunks/{chunk-M6NDLY2T.js → chunk-LD5VIJ7S.js} +1 -1
  69. package/chunks/{chunk-ZYBBISBY.js → chunk-LLR424CQ.js} +15 -12
  70. package/chunks/{chunk-JUEPY766.js → chunk-LRDB2OLB.js} +2 -2
  71. package/chunks/{chunk-PQ36L4F5.js → chunk-MCG53LWC.js} +1 -1
  72. package/chunks/{chunk-OD2WU5QY.js → chunk-NRPXRNN4.js} +1 -1
  73. package/chunks/{chunk-76J3IJ3M.js → chunk-NV6LW6FT.js} +3 -3
  74. package/chunks/{chunk-CKSJECTU.js → chunk-NVRMCWTP.js} +8 -4
  75. package/chunks/{chunk-Y3YCSWG5.js → chunk-OBJYN4MX.js} +1 -1
  76. package/chunks/{chunk-WFSTRPRO.js → chunk-OJOP26ET.js} +1 -1
  77. package/chunks/{chunk-A267JX7H.js → chunk-OLZSWUZR.js} +6 -6
  78. package/chunks/{chunk-TIGA2IVL.js → chunk-OO4FKHLO.js} +2 -2
  79. package/chunks/{chunk-OY5RNSV4.js → chunk-OSAFWBNR.js} +3 -3
  80. package/chunks/{chunk-BZ263IKX.js → chunk-OVY67CYC.js} +1 -1
  81. package/chunks/{chunk-YEYY7TEP.js → chunk-P425IVUK.js} +5 -5
  82. package/chunks/{chunk-AFSG32D5.js → chunk-PMS7O6SA.js} +1 -1
  83. package/chunks/{chunk-6ORZ2EDC.js → chunk-PPTM4O4R.js} +1 -1
  84. package/chunks/{chunk-JOOFMXGF.js → chunk-QECSDJET.js} +5 -5
  85. package/chunks/{chunk-CZBYX5MY.js → chunk-QEJZUXSK.js} +1 -1
  86. package/chunks/{chunk-4PKCUT7F.js → chunk-QIHHJKXT.js} +6 -6
  87. package/chunks/{chunk-QRCNA3SR.js → chunk-RAQBBGS6.js} +49 -69
  88. package/chunks/{chunk-M732YJPW.js → chunk-RXHBTKMG.js} +2 -2
  89. package/chunks/{chunk-XIT3GURH.js → chunk-S6CXQKDD.js} +3 -3
  90. package/chunks/{chunk-GGDBMYGZ.js → chunk-SA7GBPEA.js} +3 -3
  91. package/chunks/{chunk-7UXUJ5T3.js → chunk-SBRIBTYN.js} +1 -1
  92. package/chunks/{chunk-MC4TLKEI.js → chunk-SGLPDKRT.js} +2 -2
  93. package/chunks/{chunk-WSH6GRKG.js → chunk-SLILKYV2.js} +2 -2
  94. package/chunks/{chunk-DXIBNLBZ.js → chunk-SNQZZ765.js} +1 -1
  95. package/chunks/{chunk-5EYKMUUY.js → chunk-SR2LYSMT.js} +1 -1
  96. package/chunks/{chunk-AW4TRXOC.js → chunk-TNPWODIZ.js} +1 -1
  97. package/chunks/{chunk-QF2NHSPB.js → chunk-U6RZRKNM.js} +233 -184
  98. package/chunks/{chunk-QNQAPSN2.js → chunk-UC67T4SF.js} +3 -1
  99. package/chunks/{chunk-O565M6A4.js → chunk-UYDGFWIJ.js} +199 -14
  100. package/chunks/{chunk-LJQAUZMR.js → chunk-VGAAAMRD.js} +925 -92
  101. package/chunks/{chunk-UKMR3CKV.js → chunk-VHPMDDPT.js} +3 -3
  102. package/chunks/{chunk-S5DWMTHO.js → chunk-WP4WIUOJ.js} +2 -0
  103. package/chunks/{chunk-25EYDK42.js → chunk-WPVUOVYX.js} +1 -1
  104. package/chunks/{chunk-AXN7UPYQ.js → chunk-WSSH2BNO.js} +1 -1
  105. package/chunks/{chunk-6YKYPVDV.js → chunk-WVIABDXV.js} +3 -3
  106. package/chunks/chunk-WZAD4ZNJ.js +59 -0
  107. package/chunks/{chunk-N5YPT6PH.js → chunk-X3YA3YGG.js} +7 -4
  108. package/chunks/{chunk-4S5337WV.js → chunk-XC377TLN.js} +4312 -2704
  109. package/chunks/{chunk-NNHNLJ2X.js → chunk-XO24LIZC.js} +240 -42
  110. package/chunks/{chunk-EL5SXY3T.js → chunk-XT4RKHVE.js} +2 -2
  111. package/chunks/{chunk-FDGGZIYW.js → chunk-YECDICIO.js} +2 -2
  112. package/chunks/{chunk-E23IPNGS.js → chunk-YFPZ3NNC.js} +12 -3
  113. package/chunks/{chunk-46UV252V.js → chunk-YHC2EYYG.js} +35 -38
  114. package/chunks/{chunk-V26NVGAU.js → chunk-YIWH3MKK.js} +8 -3
  115. package/chunks/{chunk-IWPYVAO2.js → chunk-YXC7JYUI.js} +2 -2
  116. package/chunks/{chunk-A4MFR4C5.js → chunk-ZIGC3MUS.js} +2 -4
  117. package/chunks/{chunk-ZZO74WKW.js → chunk-ZXEAEZFN.js} +24 -18
  118. package/chunks/{computer-use-77C5FHMW.js → computer-use-ABECHPS5.js} +22 -21
  119. package/chunks/{config-utils-IVHRSXWI.js → config-utils-NJQA5YLJ.js} +2 -2
  120. package/chunks/{contextCommand-PJ77GBWL.js → contextCommand-4CD5HZQQ.js} +24 -23
  121. package/chunks/{core-runtime-7VMIKUTG.js → core-runtime-2MOVQ4VX.js} +22 -21
  122. package/chunks/{create-sub-session-2L5MQRN4.js → create-sub-session-L6NNHG5N.js} +26 -24
  123. package/chunks/{cron-create-H7UEPDSN.js → cron-create-NFRZEOQX.js} +2 -2
  124. package/chunks/{cron-delete-6SZK7YFM.js → cron-delete-GFVSVO7C.js} +2 -2
  125. package/chunks/{cron-list-H25JIHEZ.js → cron-list-NRW34CLU.js} +2 -2
  126. package/chunks/{daemon-2KTG7ZBN.js → daemon-XH76IXOC.js} +356 -21
  127. package/chunks/{daemon-git-worktree-guard-DXYIMWFT.js → daemon-git-worktree-guard-BLXFEG4Q.js} +24 -23
  128. package/chunks/{daemon-status-provider-ZDOYJCU6.js → daemon-status-provider-XGD3TPTO.js} +31 -30
  129. package/chunks/{daemon-trust-policy-E67OYUK2.js → daemon-trust-policy-THEGCWPO.js} +29 -28
  130. package/chunks/{daemon-trust-policy-monitor-RYYGCQ3J.js → daemon-trust-policy-monitor-L7L4ACWQ.js} +29 -28
  131. package/chunks/{de-UBEBKG6V.js → de-AH4LGCF5.js} +8 -0
  132. package/chunks/{deferred-core-runtime-3SGXFXEQ.js → deferred-core-runtime-YQLHDUGE.js} +22 -21
  133. package/chunks/{discovery-ORA5J7YP.js → discovery-X2NV535U.js} +1 -1
  134. package/chunks/{dist-WJ4BHIEW.js → dist-ESS34DHC.js} +72 -0
  135. package/chunks/{earlyInputCapture-KJMLFVQV.js → earlyInputCapture-PCTXNW7N.js} +22 -21
  136. package/chunks/{edit-I4LQFAEC.js → edit-QX2EGWYW.js} +25 -23
  137. package/chunks/{en-X6YV7GME.js → en-MD3GP5YL.js} +8 -0
  138. package/chunks/{enter-worktree-YNPOJSRH.js → enter-worktree-EM3ZZ2SB.js} +22 -21
  139. package/chunks/{enterPlanMode-XCPK62ER.js → enterPlanMode-ESCMVAKB.js} +22 -21
  140. package/chunks/{environment-S7CTIHMX.js → environment-TOJI56YV.js} +25 -24
  141. package/chunks/{errors-7HB2AIDS.js → errors-DZ5FWWEM.js} +24 -23
  142. package/chunks/{exit-worktree-AIIY7SR6.js → exit-worktree-KUIJ36XA.js} +22 -21
  143. package/chunks/{exitPlanMode-R4JY7V2O.js → exitPlanMode-NFVY54FV.js} +22 -21
  144. package/chunks/{fast-path-NDJV3ZFJ.js → fast-path-JLQXJSH6.js} +3 -3
  145. package/chunks/{fast-path-settings-LNOFM2YP.js → fast-path-settings-WHX3J3ZI.js} +2 -2
  146. package/chunks/{fr-VENTC2BS.js → fr-ZEML2JWS.js} +8 -0
  147. package/chunks/{gemini-RSUFP5OE.js → gemini-I7OT4FWL.js} +62 -61
  148. package/chunks/{geminiContentGenerator-SQ5XBPZ7.js → geminiContentGenerator-GRIS77NJ.js} +3 -3
  149. package/chunks/{glob-J4RUJAHX.js → glob-7TBUUV6R.js} +22 -21
  150. package/chunks/{goal-tools-VHTNVOKK.js → goal-tools-K5OHOJ6B.js} +1 -1
  151. package/chunks/{grep-VJWPLFOT.js → grep-743SYWCZ.js} +22 -21
  152. package/chunks/{handleAutoUpdate-POCX2MNB.js → handleAutoUpdate-GAOYUYOD.js} +26 -25
  153. package/chunks/{i18n-RM5YOICI.js → i18n-2ITURYX6.js} +23 -22
  154. package/chunks/{image-gen-EXECB5XM.js → image-gen-4OIWDZD6.js} +2 -2
  155. package/chunks/{initializer-Z2AFGBNR.js → initializer-OC7LWA6X.js} +29 -28
  156. package/chunks/{installationInfo-4I5FXNMH.js → installationInfo-CO47QX3Q.js} +23 -22
  157. package/chunks/{ja-QHT4EQTO.js → ja-UM5B2HMD.js} +8 -0
  158. package/chunks/{list-ZMBFIGZA.js → list-ATR2SFWT.js} +32 -31
  159. package/chunks/{loadedSettingsAdapter-T6TV4YJ7.js → loadedSettingsAdapter-NK4B7AGK.js} +29 -28
  160. package/chunks/{loggingContentGenerator-WF4ZOJEZ.js → loggingContentGenerator-3WXBU5TQ.js} +12 -10
  161. package/chunks/{loop-wakeup-WQS6JYAG.js → loop-wakeup-HWVUU5CF.js} +3 -3
  162. package/chunks/{managed-npm-update-E7IW6N7V.js → managed-npm-update-4SSBWI2D.js} +23 -22
  163. package/chunks/{mcp-6UNYX4HG.js → mcp-C62AE2QI.js} +29 -28
  164. package/chunks/{monitor-EE2UYMGE.js → monitor-FEYEGASA.js} +22 -21
  165. package/chunks/{nonInteractiveCli-WAY237O4.js → nonInteractiveCli-AJEV5ZWO.js} +59 -57
  166. package/chunks/{notebook-edit-NTDY4QDU.js → notebook-edit-SLLTEY4O.js} +26 -24
  167. package/chunks/{openaiContentGenerator-YNFVJMRJ.js → openaiContentGenerator-WLUGIAPX.js} +12 -11
  168. package/chunks/{pidfile-4XSFLYBZ.js → pidfile-TV2VWUMB.js} +22 -21
  169. package/chunks/{processUtils-WDA2MJFD.js → processUtils-3IN2ZR55.js} +2 -2
  170. package/chunks/{pt-VL3I5RNY.js → pt-5BMJ3XYH.js} +8 -0
  171. package/chunks/{qwenContentGenerator-434M7QKY.js → qwenContentGenerator-GSGRFPJE.js} +25 -24
  172. package/chunks/{qwenOAuth2-GMYZOO6A.js → qwenOAuth2-JLSTIS4Z.js} +3 -3
  173. package/chunks/{read-file-TAFBKMNI.js → read-file-6PZZRGZZ.js} +9 -7
  174. package/chunks/{record-artifact-SEYFJEJF.js → record-artifact-GLU3UWBV.js} +3 -1
  175. package/chunks/{resumeHistoryUtils-EVG3WYK2.js → resumeHistoryUtils-5GEWKOOO.js} +25 -24
  176. package/chunks/{ripGrep-WOEK2PXS.js → ripGrep-FX7GBGFN.js} +22 -21
  177. package/chunks/{ru-4RCKL4PY.js → ru-6GL66ORV.js} +8 -0
  178. package/chunks/{run-qwen-serve-3QSGRXAN.js → run-qwen-serve-7RHU3NSV.js} +49 -40
  179. package/chunks/{runtime-5MLLZ7DC.js → runtime-EPOXAMLP.js} +32 -31
  180. package/chunks/{scheduler-RPBJ63CH.js → scheduler-F4Y7ENVV.js} +24 -23
  181. package/chunks/{sdk-exporters-http-XUVP63H6.js → sdk-exporters-http-NC746HLT.js} +2 -2
  182. package/chunks/{sdk-impl-YXUEN2Z2.js → sdk-impl-YVL7BP6Y.js} +2 -2
  183. package/chunks/{send-message-VZENRWRH.js → send-message-TNBG5EVA.js} +1 -1
  184. package/chunks/{serve-HS3XLPXU.js → serve-LQV4TN5A.js} +29 -30
  185. package/chunks/{server-TC4A7AAZ.js → server-IZCKLIYQ.js} +1267 -165
  186. package/chunks/{session-UBOFXVMN.js → session-52ZGTDVB.js} +60 -58
  187. package/chunks/{settings-D5644OM5.js → settings-WCVB34HW.js} +28 -27
  188. package/chunks/{shell-3PZULQQV.js → shell-33BIUBLH.js} +22 -21
  189. package/chunks/{skill-PEVVXQ3L.js → skill-IYVQ2QNK.js} +11 -9
  190. package/chunks/{skill-settings-J65JKKES.js → skill-settings-YG4ZS4OZ.js} +28 -27
  191. package/chunks/{spawnChannel-IYGXRHSQ.js → spawnChannel-BLA4YT4W.js} +24 -23
  192. package/chunks/{standalone-update-IFM53PE7.js → standalone-update-ALRIPWSM.js} +24 -23
  193. package/chunks/{startInteractiveUI-3AVH7L6H.js → startInteractiveUI-PISBXWKA.js} +262 -191
  194. package/chunks/{task-create-FCBDX7UH.js → task-create-EILHJJB7.js} +4 -4
  195. package/chunks/{task-list-YIYIUFUA.js → task-list-WGJR6YL5.js} +18 -4
  196. package/chunks/{task-update-MYPFVOVM.js → task-update-XZAHVXJ5.js} +79 -8
  197. package/chunks/{team-create-ZAIA7KAV.js → team-create-CIQDCC6A.js} +23 -23
  198. package/chunks/{team-delete-6UMU4XLS.js → team-delete-UEP4QOOT.js} +3 -3
  199. package/chunks/{team-plan-approval-UNIUS7OD.js → team-plan-approval-664XCRB4.js} +22 -21
  200. package/chunks/{terminal-image-renderer-G343P2RV.js → terminal-image-renderer-TEBO6ONY.js} +22 -21
  201. package/chunks/{theme-manager-Z3RIT7DB.js → theme-manager-3CIFH2JV.js} +22 -21
  202. package/chunks/{todoWrite-U2R4NVF4.js → todoWrite-ATS62CAP.js} +1 -1
  203. package/chunks/{tool-search-5R2OE4C7.js → tool-search-IJX5JHJB.js} +9 -7
  204. package/chunks/{total-session-admission-4KBHMQQ2.js → total-session-admission-XBK2NVRV.js} +26 -25
  205. package/chunks/{trustedFolders-LK6T4XC7.js → trustedFolders-OOFNLRWK.js} +23 -22
  206. package/chunks/{update-relaunch-UBKROIC6.js → update-relaunch-EIG7EYAQ.js} +5 -5
  207. package/chunks/{updateCheck-W4Y2GFSD.js → updateCheck-KYDCBLSF.js} +25 -24
  208. package/chunks/{useAutoAcceptIndicator-C7BEICBF.js → useAutoAcceptIndicator-RFX3KNBN.js} +31 -30
  209. package/chunks/{validateNonInterActiveAuth-LTEI2TB6.js → validateNonInterActiveAuth-MZXSAITU.js} +56 -54
  210. package/chunks/{version-G5A5DGVS.js → version-PJC6ZNXV.js} +1 -1
  211. package/chunks/{web-fetch-RTEQTR5Z.js → web-fetch-XXICVGKQ.js} +11 -8
  212. package/chunks/{web-search-5OXHEZPV.js → web-search-LHPM6QWC.js} +2 -2
  213. package/chunks/{workflow-ISQJHPG2.js → workflow-4CUO2BV7.js} +139 -37
  214. package/chunks/{workspace-providers-status-2ZPZPUPZ.js → workspace-providers-status-G4MUGH3X.js} +32 -31
  215. package/chunks/{workspace-registration-store-CYNY6IP6.js → workspace-registration-store-QMDMFWBE.js} +1 -1
  216. package/chunks/{workspace-registry-34GTUUHB.js → workspace-registry-FKBB4MZK.js} +26 -25
  217. package/chunks/{workspace-service-XCDQLE2Y.js → workspace-service-TIDTTA65.js} +33 -32
  218. package/chunks/{workspace-skills-status-RS4O7AIJ.js → workspace-skills-status-LBC2TZKM.js} +30 -29
  219. package/chunks/{workspace-trust-reconciler-AYGXC7A3.js → workspace-trust-reconciler-4KJ567XP.js} +33 -32
  220. package/chunks/{write-file-EWXKVVXF.js → write-file-R6LAEER5.js} +22 -21
  221. package/chunks/{zh-TW-SQ4HTSCW.js → zh-TW-LVLBK4KF.js} +8 -0
  222. package/chunks/{zh-LMSTK4WD.js → zh-UBMWS2BJ.js} +8 -0
  223. package/chunks/{zoom-image-4BFYJ3HG.js → zoom-image-XLCK6DDK.js} +14 -11
  224. package/cli.js +13 -13
  225. package/locales/ca.js +13 -0
  226. package/locales/de.js +12 -0
  227. package/locales/en.js +11 -0
  228. package/locales/fr.js +13 -0
  229. package/locales/ja.js +13 -0
  230. package/locales/pt.js +12 -0
  231. package/locales/ru.js +12 -0
  232. package/locales/zh-TW.js +11 -0
  233. package/locales/zh.js +11 -0
  234. package/package.json +3 -3
  235. package/web-shell/assets/{arc-CgOpDKvm.js → arc-DItbX0DI.js} +1 -1
  236. package/web-shell/assets/{architectureDiagram-3BPJPVTR-0Ag_m34F.js → architectureDiagram-3BPJPVTR-CmnIlH8y.js} +1 -1
  237. package/web-shell/assets/{blockDiagram-GPEHLZMM-IwTwFau0.js → blockDiagram-GPEHLZMM-pObnB9kw.js} +1 -1
  238. package/web-shell/assets/{c4Diagram-AAUBKEIU-DLa5GUv8.js → c4Diagram-AAUBKEIU-BNBmMS0Y.js} +1 -1
  239. package/web-shell/assets/channel-hZnMfWA9.js +1 -0
  240. package/web-shell/assets/{chunk-2J33WTMH-DcYP-WFG.js → chunk-2J33WTMH-Dz4JBOO6.js} +1 -1
  241. package/web-shell/assets/{chunk-4BX2VUAB-C8MVPMiQ.js → chunk-4BX2VUAB-Cz2GnvAR.js} +1 -1
  242. package/web-shell/assets/{chunk-55IACEB6-BUi4Yfv3.js → chunk-55IACEB6-CC6kOQYx.js} +1 -1
  243. package/web-shell/assets/{chunk-727SXJPM-Cy3Su2YY.js → chunk-727SXJPM-Z4lY4gbh.js} +1 -1
  244. package/web-shell/assets/{chunk-AQP2D5EJ-Dp8Teqv6.js → chunk-AQP2D5EJ-Yz0hZr3D.js} +1 -1
  245. package/web-shell/assets/{chunk-FMBD7UC4-BDTDM-4j.js → chunk-FMBD7UC4-nKmTWTv9.js} +1 -1
  246. package/web-shell/assets/{chunk-ND2GUHAM-7HfDt0r2.js → chunk-ND2GUHAM-CjZz0f6Y.js} +1 -1
  247. package/web-shell/assets/{chunk-QZHKN3VN-BIBU0uCF.js → chunk-QZHKN3VN-Bab3FpuS.js} +1 -1
  248. package/web-shell/assets/classDiagram-4FO5ZUOK-BRnxm8DX.js +1 -0
  249. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BRnxm8DX.js +1 -0
  250. package/web-shell/assets/{cose-bilkent-S5V4N54A-DRLdcg9p.js → cose-bilkent-S5V4N54A-BuSAGFox.js} +1 -1
  251. package/web-shell/assets/{dagre-BM42HDAG-DCCgDwqW.js → dagre-BM42HDAG-CRZXTg3g.js} +1 -1
  252. package/web-shell/assets/{diagram-2AECGRRQ-CsBTBmk3.js → diagram-2AECGRRQ-BFx1Ayrz.js} +1 -1
  253. package/web-shell/assets/{diagram-5GNKFQAL-C9qjH8Lt.js → diagram-5GNKFQAL-B2hMZ3gS.js} +1 -1
  254. package/web-shell/assets/{diagram-KO2AKTUF-Brjs_lj2.js → diagram-KO2AKTUF-DKxAQLmc.js} +1 -1
  255. package/web-shell/assets/{diagram-LMA3HP47-DtiWCl_F.js → diagram-LMA3HP47-Bo1xGqVY.js} +1 -1
  256. package/web-shell/assets/{diagram-OG6HWLK6-DmfKLkBT.js → diagram-OG6HWLK6-B9NG78d-.js} +1 -1
  257. package/web-shell/assets/{erDiagram-TEJ5UH35-Bve_4deH.js → erDiagram-TEJ5UH35-DltQKiqQ.js} +1 -1
  258. package/web-shell/assets/{flowDiagram-I6XJVG4X-C2_kXCcV.js → flowDiagram-I6XJVG4X-5xXGmS4I.js} +1 -1
  259. package/web-shell/assets/{ganttDiagram-6RSMTGT7-BSBIjiTF.js → ganttDiagram-6RSMTGT7-bhGL5n0l.js} +1 -1
  260. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-CyebwI55.js → gitGraphDiagram-PVQCEYII-ZYnz9hgh.js} +1 -1
  261. package/web-shell/assets/{index-d0yfnV1M.js → index-CBBeUArD.js} +1 -1
  262. package/web-shell/assets/index-CbgU-jUo.css +5 -0
  263. package/web-shell/assets/index-_nhzXqab.js +1750 -0
  264. package/web-shell/assets/{infoDiagram-5YYISTIA-CSDGnWxU.js → infoDiagram-5YYISTIA-Cg-jamQf.js} +1 -1
  265. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-BK4jU13p.js → ishikawaDiagram-YF4QCWOH-CcmvKlyq.js} +1 -1
  266. package/web-shell/assets/{journeyDiagram-JHISSGLW-D_W6j-oF.js → journeyDiagram-JHISSGLW-BRsOQZp1.js} +1 -1
  267. package/web-shell/assets/{kanban-definition-UN3LZRKU-C7xf-SdC.js → kanban-definition-UN3LZRKU-xW-dmEHK.js} +1 -1
  268. package/web-shell/assets/{linear-DQmzxpxd.js → linear-ClBfEZH2.js} +1 -1
  269. package/web-shell/assets/{mermaid.core-9P7AGOLG.js → mermaid.core-D65NDkzc.js} +5 -5
  270. package/web-shell/assets/{mindmap-definition-RKZ34NQL-DgcgMyPk.js → mindmap-definition-RKZ34NQL-CyvFslYa.js} +1 -1
  271. package/web-shell/assets/{pieDiagram-4H26LBE5-3wWGb9eG.js → pieDiagram-4H26LBE5-BwSefMyG.js} +1 -1
  272. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-BeCXnQw9.js → quadrantDiagram-W4KKPZXB-GqBJspFS.js} +1 -1
  273. package/web-shell/assets/{requirementDiagram-4Y6WPE33-Bi1UOHDz.js → requirementDiagram-4Y6WPE33-B137PlTJ.js} +1 -1
  274. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-lrLUjjbb.js → sankeyDiagram-5OEKKPKP-maHkkt8i.js} +1 -1
  275. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-BFuqKz6Q.js → sequenceDiagram-3UESZ5HK-DJ1mRaG3.js} +1 -1
  276. package/web-shell/assets/{stateDiagram-AJRCARHV-8DemQLhu.js → stateDiagram-AJRCARHV-aRmP7Q4i.js} +1 -1
  277. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-Db39gvZ_.js +1 -0
  278. package/web-shell/assets/{timeline-definition-PNZ67QCA-uzEuVQXg.js → timeline-definition-PNZ67QCA-CIQ3BRPA.js} +1 -1
  279. package/web-shell/assets/{vennDiagram-CIIHVFJN-BQTeZ_-o.js → vennDiagram-CIIHVFJN-DR9VPd5h.js} +1 -1
  280. package/web-shell/assets/{wardley-L42UT6IY-B6yM5Im7.js → wardley-L42UT6IY-ZcfIbT4D.js} +1 -1
  281. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-ChM8bmgn.js → wardleyDiagram-YWT4CUSO-D0jgPi4T.js} +1 -1
  282. package/web-shell/assets/{xychartDiagram-2RQKCTM6-oNG6HyB1.js → xychartDiagram-2RQKCTM6-BGWU4s5o.js} +1 -1
  283. package/web-shell/index.html +2 -2
  284. package/chunks/chunk-MPHPFVKK.js +0 -48
  285. package/chunks/chunk-RLKC46YT.js +0 -3582
  286. package/chunks/chunk-UPDOZBWO.js +0 -358
  287. package/web-shell/assets/channel-BrGVBa2L.js +0 -1
  288. package/web-shell/assets/classDiagram-4FO5ZUOK-B5TUzJzI.js +0 -1
  289. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-B5TUzJzI.js +0 -1
  290. package/web-shell/assets/index-CIDsgxTe.js +0 -1792
  291. package/web-shell/assets/index-DiQnWi_E.css +0 -5
  292. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DhM5ixYd.js +0 -1
  293. /package/chunks/{chunk-NTTBXH7U.js → chunk-UGK4K2N2.js} +0 -0
@@ -2,53 +2,54 @@
2
2
  "use strict";
3
3
  import {
4
4
  JsonOutputAdapter
5
- } from "./chunk-V26NVGAU.js";
5
+ } from "./chunk-YIWH3MKK.js";
6
6
  import {
7
7
  StreamJsonOutputAdapter
8
- } from "./chunk-UZPM4XHR.js";
9
- import "./chunk-NNHNLJ2X.js";
10
- import "./chunk-N5YPT6PH.js";
8
+ } from "./chunk-6VDPDHIP.js";
9
+ import "./chunk-XO24LIZC.js";
10
+ import "./chunk-X3YA3YGG.js";
11
11
  import {
12
12
  validateAuthMethod
13
- } from "./chunk-IGGGG5CX.js";
14
- import "./chunk-O4D7SPJN.js";
13
+ } from "./chunk-KSGWAYNE.js";
14
+ import "./chunk-73G3Z7QS.js";
15
15
  import "./chunk-4WGODMVR.js";
16
16
  import "./chunk-3SH53ANB.js";
17
17
  import "./chunk-NYX53SV4.js";
18
- import "./chunk-DXIBNLBZ.js";
18
+ import "./chunk-SNQZZ765.js";
19
19
  import "./chunk-EKTCKZV5.js";
20
20
  import "./chunk-2M55OBEB.js";
21
- import "./chunk-GO7STP6N.js";
22
- import "./chunk-JUEPY766.js";
23
- import "./chunk-NEFOOD54.js";
21
+ import "./chunk-K3CECR5C.js";
22
+ import "./chunk-LRDB2OLB.js";
23
+ import "./chunk-4V4DFJBS.js";
24
24
  import "./chunk-YAF2MQZ6.js";
25
- import "./chunk-QRCNA3SR.js";
25
+ import "./chunk-RAQBBGS6.js";
26
26
  import "./chunk-6H67XLET.js";
27
- import "./chunk-RLKC46YT.js";
28
- import "./chunk-BZ263IKX.js";
29
- import "./chunk-4NFY2S7N.js";
30
- import "./chunk-3U3VAL47.js";
27
+ import "./chunk-EOCQCNV4.js";
28
+ import "./chunk-OVY67CYC.js";
29
+ import "./chunk-E7REAOTN.js";
30
+ import "./chunk-57KOJ2KZ.js";
31
31
  import "./chunk-2MIN6GRR.js";
32
32
  import "./chunk-QHTIBUWB.js";
33
33
  import "./chunk-3Z43GZUQ.js";
34
34
  import "./chunk-TQOF5KBL.js";
35
35
  import "./chunk-UXEO7E3V.js";
36
- import "./chunk-QIH2HAEN.js";
36
+ import "./chunk-7OCSX7FC.js";
37
37
  import "./chunk-WGHHA7ZH.js";
38
- import "./chunk-XHRY7BXD.js";
38
+ import "./chunk-G6FFFICU.js";
39
39
  import "./chunk-7U5G6JXI.js";
40
40
  import "./chunk-WCCLLK7X.js";
41
- import "./chunk-ZYYTZUI2.js";
41
+ import "./chunk-ISRHAMNL.js";
42
42
  import "./chunk-Z4X5MTRT.js";
43
- import "./chunk-TUGSVUJB.js";
44
- import "./chunk-QV5YN5YD.js";
43
+ import "./chunk-2JXDFSVE.js";
44
+ import "./chunk-HGPMOXLZ.js";
45
45
  import "./chunk-57OAHC2Y.js";
46
- import "./chunk-OD2WU5QY.js";
46
+ import "./chunk-NRPXRNN4.js";
47
47
  import "./chunk-45NQKMYB.js";
48
- import "./chunk-A4QRWUDE.js";
48
+ import "./chunk-5IYS4WWR.js";
49
49
  import "./chunk-V6WHFGST.js";
50
50
  import "./chunk-ZLCT4C5A.js";
51
- import "./chunk-BKPPWD33.js";
51
+ import "./chunk-DRKYT2TR.js";
52
+ import "./chunk-WP4WIUOJ.js";
52
53
  import "./chunk-6PLDPT2C.js";
53
54
  import "./chunk-FYJ7W2PI.js";
54
55
  import "./chunk-YP5KH5Y7.js";
@@ -60,50 +61,50 @@ import "./chunk-3VUENPWF.js";
60
61
  import "./chunk-AW27A43Y.js";
61
62
  import "./chunk-IW6RQPQB.js";
62
63
  import "./chunk-H4A72DE5.js";
63
- import "./chunk-JOOFMXGF.js";
64
- import "./chunk-A267JX7H.js";
64
+ import "./chunk-QECSDJET.js";
65
+ import "./chunk-OLZSWUZR.js";
65
66
  import "./chunk-RKUWKYED.js";
66
- import "./chunk-E23IPNGS.js";
67
+ import "./chunk-YFPZ3NNC.js";
67
68
  import "./chunk-GOXKNSDZ.js";
68
69
  import "./chunk-IDS7MSUP.js";
69
- import "./chunk-HUTNYWBG.js";
70
+ import "./chunk-IOTPI425.js";
70
71
  import "./chunk-5EJZE3FP.js";
71
- import "./chunk-MC4TLKEI.js";
72
- import "./chunk-MS7GNABG.js";
73
- import "./chunk-CU6GJD55.js";
72
+ import "./chunk-SGLPDKRT.js";
73
+ import "./chunk-CXJHQVEK.js";
74
+ import "./chunk-6DFPR7CS.js";
74
75
  import "./chunk-WZMH7II3.js";
75
- import "./chunk-IWPYVAO2.js";
76
+ import "./chunk-YXC7JYUI.js";
76
77
  import "./chunk-NPQ5ZKRP.js";
77
78
  import "./chunk-MR3PXB6E.js";
78
79
  import "./chunk-XFSFZCM5.js";
79
- import "./chunk-4S5337WV.js";
80
+ import "./chunk-XC377TLN.js";
80
81
  import "./chunk-GOFAQQZA.js";
81
82
  import "./chunk-5M6IDOMF.js";
82
83
  import "./chunk-TWPJO254.js";
83
84
  import "./chunk-CQ35AJ4Z.js";
84
- import "./chunk-DGZEMW5R.js";
85
- import "./chunk-WSH6GRKG.js";
86
- import "./chunk-CKSJECTU.js";
87
- import "./chunk-OVZPVYZB.js";
85
+ import "./chunk-FS5NGKWC.js";
86
+ import "./chunk-SLILKYV2.js";
87
+ import "./chunk-NVRMCWTP.js";
88
+ import "./chunk-AKBOLMUF.js";
88
89
  import "./chunk-6PVPNMXU.js";
89
- import "./chunk-5EYKMUUY.js";
90
+ import "./chunk-SR2LYSMT.js";
90
91
  import "./chunk-IRH27ZC2.js";
91
92
  import "./chunk-QHWCP53L.js";
92
- import "./chunk-Y3YCSWG5.js";
93
- import "./chunk-UPDOZBWO.js";
93
+ import "./chunk-OBJYN4MX.js";
94
+ import "./chunk-2C6HJMG3.js";
94
95
  import "./chunk-O6GEWCJA.js";
95
96
  import "./chunk-T26EAKDL.js";
96
97
  import "./chunk-ZPJWUGCS.js";
97
98
  import "./chunk-CPBF7KYF.js";
98
99
  import "./chunk-RWDNJBWN.js";
99
- import "./chunk-25EYDK42.js";
100
+ import "./chunk-WPVUOVYX.js";
100
101
  import "./chunk-MIPFDQAF.js";
101
102
  import "./chunk-MLXTMF7H.js";
102
103
  import "./chunk-KV27IEHM.js";
103
104
  import "./chunk-E3DYKPYZ.js";
104
- import "./chunk-OMLJNPBE.js";
105
- import "./chunk-OXCMMLED.js";
106
- import "./chunk-TIGA2IVL.js";
105
+ import "./chunk-4ZMS3JCR.js";
106
+ import "./chunk-DGJ7O55J.js";
107
+ import "./chunk-OO4FKHLO.js";
107
108
  import "./chunk-SAH4BD2J.js";
108
109
  import "./chunk-XLLKYULU.js";
109
110
  import "./chunk-PT4I7NBA.js";
@@ -113,7 +114,7 @@ import "./chunk-SG7ZP5PG.js";
113
114
  import "./chunk-K623ENWT.js";
114
115
  import "./chunk-AQ37AY7B.js";
115
116
  import "./chunk-KBXKR5R2.js";
116
- import "./chunk-GMIEIY3Y.js";
117
+ import "./chunk-I3N2Z25H.js";
117
118
  import "./chunk-NAVJD2PQ.js";
118
119
  import "./chunk-ROIYNTHJ.js";
119
120
  import "./chunk-2B2BF7P7.js";
@@ -121,34 +122,35 @@ import "./chunk-P3QQPMQA.js";
121
122
  import "./chunk-YZHRN3CF.js";
122
123
  import "./chunk-FAAUPSY2.js";
123
124
  import "./chunk-KM73TBQ4.js";
124
- import "./chunk-MPHPFVKK.js";
125
125
  import "./chunk-AXMWHKXA.js";
126
126
  import "./chunk-GLCZKT5V.js";
127
127
  import "./chunk-DJ2GSRLV.js";
128
128
  import "./chunk-QFJ5JHQR.js";
129
- import "./chunk-RVOJ2FBP.js";
129
+ import "./chunk-KC4WMLZO.js";
130
130
  import "./chunk-YRLW2MSX.js";
131
131
  import "./chunk-VGC4I5JJ.js";
132
+ import "./chunk-3PWCMXIR.js";
132
133
  import "./chunk-CHHABXPE.js";
133
134
  import "./chunk-MA2HEDVP.js";
134
135
  import "./chunk-XUJNK7Y6.js";
135
136
  import "./chunk-6HY6IF3Z.js";
136
- import "./chunk-4PKCUT7F.js";
137
+ import "./chunk-QIHHJKXT.js";
137
138
  import "./chunk-F6WFNA7U.js";
138
- import "./chunk-46UV252V.js";
139
+ import "./chunk-WZAD4ZNJ.js";
139
140
  import "./chunk-FPGTNKCP.js";
141
+ import "./chunk-YHC2EYYG.js";
140
142
  import "./chunk-CPHEPGAO.js";
141
- import "./chunk-P7MPQI75.js";
142
- import "./chunk-FDGGZIYW.js";
143
- import "./chunk-EL5SXY3T.js";
143
+ import "./chunk-DVR7XKO5.js";
144
+ import "./chunk-YECDICIO.js";
145
+ import "./chunk-XT4RKHVE.js";
144
146
  import "./chunk-HHJLM3WQ.js";
145
- import "./chunk-K5IDV3PC.js";
147
+ import "./chunk-D34RDOLP.js";
146
148
  import "./chunk-BUQDLC2G.js";
147
149
  import "./chunk-VOQXFAY5.js";
148
- import "./chunk-AW4TRXOC.js";
150
+ import "./chunk-TNPWODIZ.js";
149
151
  import {
150
152
  runExitCleanup
151
- } from "./chunk-X26JYGTD.js";
153
+ } from "./chunk-L6CCLB3G.js";
152
154
  import {
153
155
  writeStderrLine
154
156
  } from "./chunk-KGJGEEVR.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  getCliVersion
5
- } from "./chunk-CU6GJD55.js";
5
+ } from "./chunk-6DFPR7CS.js";
6
6
  import "./chunk-WZMH7II3.js";
7
7
  import "./chunk-5O2XNYP6.js";
8
8
  import "./chunk-J2S4EL5Y.js";
@@ -14,11 +14,13 @@ import "./chunk-YZHRN3CF.js";
14
14
  import "./chunk-FAAUPSY2.js";
15
15
  import {
16
16
  MAX_SESSION_BYTES,
17
- extractPDFText,
18
17
  import_lru_cache
19
- } from "./chunk-RVOJ2FBP.js";
18
+ } from "./chunk-KC4WMLZO.js";
20
19
  import "./chunk-YRLW2MSX.js";
21
20
  import "./chunk-VGC4I5JJ.js";
21
+ import {
22
+ extractPDFText
23
+ } from "./chunk-3PWCMXIR.js";
22
24
  import "./chunk-CHHABXPE.js";
23
25
  import {
24
26
  runSideQuery
@@ -30,16 +32,17 @@ import {
30
32
  ToolDisplayNames,
31
33
  ToolNames
32
34
  } from "./chunk-6HY6IF3Z.js";
33
- import "./chunk-4PKCUT7F.js";
35
+ import "./chunk-QIHHJKXT.js";
34
36
  import "./chunk-F6WFNA7U.js";
35
- import "./chunk-46UV252V.js";
37
+ import "./chunk-WZAD4ZNJ.js";
36
38
  import "./chunk-FPGTNKCP.js";
39
+ import "./chunk-YHC2EYYG.js";
37
40
  import "./chunk-CPHEPGAO.js";
38
- import "./chunk-P7MPQI75.js";
39
- import "./chunk-FDGGZIYW.js";
40
- import "./chunk-EL5SXY3T.js";
41
+ import "./chunk-DVR7XKO5.js";
42
+ import "./chunk-YECDICIO.js";
43
+ import "./chunk-XT4RKHVE.js";
41
44
  import "./chunk-HHJLM3WQ.js";
42
- import "./chunk-K5IDV3PC.js";
45
+ import "./chunk-D34RDOLP.js";
43
46
  import {
44
47
  createDebugLogger,
45
48
  getErrorMessage
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  buildModelIdContext,
5
5
  resolveModelId
6
- } from "./chunk-5EYKMUUY.js";
6
+ } from "./chunk-SR2LYSMT.js";
7
7
  import {
8
8
  DASHSCOPE_REGIONAL_HOSTS,
9
9
  OpenAI
@@ -25,7 +25,7 @@ import {
25
25
  ToolDisplayNames,
26
26
  ToolNames
27
27
  } from "./chunk-6HY6IF3Z.js";
28
- import "./chunk-4PKCUT7F.js";
28
+ import "./chunk-QIHHJKXT.js";
29
29
  import "./chunk-F6WFNA7U.js";
30
30
  import "./chunk-FPGTNKCP.js";
31
31
  import {
@@ -9,27 +9,28 @@ import {
9
9
  generateAgentWorktreeSlug,
10
10
  isTerminalWorkflowStatus,
11
11
  rebuildToolRegistryOnOverride,
12
+ resolveExternalWorktreeDir,
12
13
  resolveSavedWorkflowScript,
13
14
  toModelVisibleSubagentResult,
14
15
  writeWorkflowSnapshot,
15
16
  writeWorktreeSessionMarker
16
- } from "./chunk-4S5337WV.js";
17
+ } from "./chunk-XC377TLN.js";
17
18
  import "./chunk-GOFAQQZA.js";
18
19
  import "./chunk-5M6IDOMF.js";
19
20
  import "./chunk-TWPJO254.js";
20
21
  import "./chunk-CQ35AJ4Z.js";
21
- import "./chunk-DGZEMW5R.js";
22
- import "./chunk-WSH6GRKG.js";
23
- import "./chunk-CKSJECTU.js";
24
- import "./chunk-OVZPVYZB.js";
22
+ import "./chunk-FS5NGKWC.js";
23
+ import "./chunk-SLILKYV2.js";
24
+ import "./chunk-NVRMCWTP.js";
25
+ import "./chunk-AKBOLMUF.js";
25
26
  import {
26
27
  parsePositiveIntegerEnv
27
28
  } from "./chunk-6PVPNMXU.js";
28
- import "./chunk-5EYKMUUY.js";
29
+ import "./chunk-SR2LYSMT.js";
29
30
  import "./chunk-IRH27ZC2.js";
30
31
  import "./chunk-QHWCP53L.js";
31
- import "./chunk-Y3YCSWG5.js";
32
- import "./chunk-UPDOZBWO.js";
32
+ import "./chunk-OBJYN4MX.js";
33
+ import "./chunk-2C6HJMG3.js";
33
34
  import "./chunk-O6GEWCJA.js";
34
35
  import "./chunk-T26EAKDL.js";
35
36
  import "./chunk-ZPJWUGCS.js";
@@ -37,14 +38,14 @@ import "./chunk-CPBF7KYF.js";
37
38
  import {
38
39
  SUBAGENT_PLAN_LIFECYCLE_TOOLS
39
40
  } from "./chunk-RWDNJBWN.js";
40
- import "./chunk-25EYDK42.js";
41
+ import "./chunk-WPVUOVYX.js";
41
42
  import "./chunk-MIPFDQAF.js";
42
43
  import "./chunk-MLXTMF7H.js";
43
44
  import "./chunk-KV27IEHM.js";
44
45
  import "./chunk-E3DYKPYZ.js";
45
- import "./chunk-OMLJNPBE.js";
46
- import "./chunk-OXCMMLED.js";
47
- import "./chunk-TIGA2IVL.js";
46
+ import "./chunk-4ZMS3JCR.js";
47
+ import "./chunk-DGJ7O55J.js";
48
+ import "./chunk-OO4FKHLO.js";
48
49
  import "./chunk-SAH4BD2J.js";
49
50
  import "./chunk-XLLKYULU.js";
50
51
  import {
@@ -58,7 +59,7 @@ import "./chunk-AQ37AY7B.js";
58
59
  import {
59
60
  WorkspaceContext
60
61
  } from "./chunk-KBXKR5R2.js";
61
- import "./chunk-GMIEIY3Y.js";
62
+ import "./chunk-I3N2Z25H.js";
62
63
  import "./chunk-NAVJD2PQ.js";
63
64
  import "./chunk-ROIYNTHJ.js";
64
65
  import "./chunk-2B2BF7P7.js";
@@ -66,7 +67,6 @@ import "./chunk-P3QQPMQA.js";
66
67
  import "./chunk-YZHRN3CF.js";
67
68
  import "./chunk-FAAUPSY2.js";
68
69
  import "./chunk-KM73TBQ4.js";
69
- import "./chunk-MPHPFVKK.js";
70
70
  import "./chunk-AXMWHKXA.js";
71
71
  import "./chunk-GLCZKT5V.js";
72
72
  import {
@@ -79,9 +79,10 @@ import {
79
79
  logWorkflowRun,
80
80
  read,
81
81
  writeLine
82
- } from "./chunk-RVOJ2FBP.js";
82
+ } from "./chunk-KC4WMLZO.js";
83
83
  import "./chunk-YRLW2MSX.js";
84
84
  import "./chunk-VGC4I5JJ.js";
85
+ import "./chunk-3PWCMXIR.js";
85
86
  import "./chunk-CHHABXPE.js";
86
87
  import "./chunk-MA2HEDVP.js";
87
88
  import {
@@ -93,18 +94,19 @@ import {
93
94
  ToolDisplayNames,
94
95
  ToolNames
95
96
  } from "./chunk-6HY6IF3Z.js";
96
- import "./chunk-4PKCUT7F.js";
97
+ import "./chunk-QIHHJKXT.js";
97
98
  import "./chunk-F6WFNA7U.js";
98
- import "./chunk-46UV252V.js";
99
+ import "./chunk-WZAD4ZNJ.js";
99
100
  import "./chunk-FPGTNKCP.js";
101
+ import "./chunk-YHC2EYYG.js";
100
102
  import "./chunk-CPHEPGAO.js";
101
- import "./chunk-P7MPQI75.js";
102
- import "./chunk-FDGGZIYW.js";
103
+ import "./chunk-DVR7XKO5.js";
104
+ import "./chunk-YECDICIO.js";
103
105
  import {
104
106
  stripAnsiAndControl
105
- } from "./chunk-EL5SXY3T.js";
107
+ } from "./chunk-XT4RKHVE.js";
106
108
  import "./chunk-HHJLM3WQ.js";
107
- import "./chunk-K5IDV3PC.js";
109
+ import "./chunk-D34RDOLP.js";
108
110
  import {
109
111
  createDebugLogger
110
112
  } from "./chunk-BUQDLC2G.js";
@@ -915,7 +917,7 @@ function createWorkflowSandbox(opts) {
915
917
  // FIX-Round1-T13: throw on any opts key not in the allowlist \u2014 catches
916
918
  // typos like { scema: ... } that previously slipped through the
917
919
  // [key:string]: unknown index signature.
918
- const KNOWN_AGENT_OPTS = ['label', 'phase', 'schema', 'model', 'isolation', 'agentType', 'stallMs'];
920
+ const KNOWN_AGENT_OPTS = ['label', 'phase', 'schema', 'model', 'isolation', 'agentType', 'stallMs', 'workingDir'];
919
921
  globalThis.agent = vmAsync(function (prompt, agentOpts) {
920
922
  agentOpts = agentOpts || {};
921
923
  const keys = Object.keys(agentOpts);
@@ -945,6 +947,34 @@ function createWorkflowSandbox(opts) {
945
947
  "Known modes are: 'worktree', 'remote'."
946
948
  );
947
949
  }
950
+ // NOTE: this init script is a host-side template literal \u2014 no
951
+ // backticks anywhere below, in code or comments.
952
+ //
953
+ // A non-number stallMs is silently dropped downstream and the
954
+ // default watchdog applies, contradicting "0 disables the watchdog"
955
+ // \u2014 refuse it loudly like the other option gates.
956
+ if (agentOpts.stallMs !== undefined && (typeof agentOpts.stallMs !== 'number' || !Number.isFinite(agentOpts.stallMs))) {
957
+ throw new Error("agent({stallMs}): must be a finite number of milliseconds (0 disables the watchdog).");
958
+ }
959
+ // workingDir pins the agent to a worktree the CALLER already owns;
960
+ // isolation creates and reaps one. Asking for both is a contradiction
961
+ // about who owns the directory's lifetime, so name it here rather than
962
+ // silently letting one win.
963
+ if (agentOpts.workingDir !== undefined) {
964
+ if (typeof agentOpts.workingDir !== 'string' || agentOpts.workingDir.trim().length === 0) {
965
+ throw new Error(
966
+ "agent({workingDir}): must be a non-empty string naming an existing " +
967
+ "git worktree of this repository."
968
+ );
969
+ }
970
+ if (agentOpts.isolation !== undefined) {
971
+ throw new Error(
972
+ "agent({workingDir, isolation}): incompatible options. workingDir " +
973
+ "pins the agent to a worktree you already own; isolation creates " +
974
+ "a fresh one and removes it afterwards. Pass one."
975
+ );
976
+ }
977
+ }
948
978
  if (typeof agentOpts.phase === 'string' && agentOpts.phase.length > 0) {
949
979
  if (__b.lastPhase() !== agentOpts.phase) {
950
980
  __b.pushPhase(agentOpts.phase);
@@ -1529,7 +1559,13 @@ var debugLogger4 = createDebugLogger("WORKFLOW_JOURNAL");
1529
1559
  var JOURNAL_KEY_VERSION = "v2";
1530
1560
  function canonicalizeAgentOpts(opts) {
1531
1561
  const projected = {};
1532
- for (const k of ["schema", "model", "isolation", "agentType"]) {
1562
+ for (const k of [
1563
+ "schema",
1564
+ "model",
1565
+ "isolation",
1566
+ "agentType",
1567
+ "workingDir"
1568
+ ]) {
1533
1569
  const v = opts[k];
1534
1570
  if (v === void 0 || typeof v === "function") continue;
1535
1571
  projected[k] = v;
@@ -1783,8 +1819,49 @@ function resolveConcurrencyLimit(env = process.env) {
1783
1819
  return Math.max(1, Math.min(16, os.cpus().length - 2));
1784
1820
  }
1785
1821
  __name(resolveConcurrencyLimit, "resolveConcurrencyLimit");
1786
- var WORKFLOW_SUBAGENT_MAX_TURNS = 50;
1787
- var WORKFLOW_SUBAGENT_MAX_TIME_MINUTES = 10;
1822
+ var DEFAULT_WORKFLOW_SUBAGENT_MAX_TURNS = 50;
1823
+ var DEFAULT_WORKFLOW_SUBAGENT_MAX_TIME_MINUTES = 10;
1824
+ var WORKFLOW_SUBAGENT_MAX_TURNS_ENV = "QWEN_CODE_WORKFLOW_AGENT_MAX_TURNS";
1825
+ var WORKFLOW_SUBAGENT_MAX_MINUTES_ENV = "QWEN_CODE_WORKFLOW_AGENT_MAX_MINUTES";
1826
+ var HARD_WORKFLOW_SUBAGENT_MAX_TURNS_CEILING = 500;
1827
+ var HARD_WORKFLOW_SUBAGENT_MAX_MINUTES_CEILING = 100;
1828
+ function resolveSubagentBound(envName, defaultValue, ceiling, env) {
1829
+ const raw = env[envName];
1830
+ if (raw === void 0 || raw.trim() === "") return defaultValue;
1831
+ const parsed = parsePositiveIntegerEnv(raw, 0);
1832
+ if (parsed < 1) {
1833
+ debugLogger.warn(
1834
+ `Invalid ${envName}=${JSON.stringify(raw)}, using default (${defaultValue})`
1835
+ );
1836
+ return defaultValue;
1837
+ }
1838
+ if (parsed > ceiling) {
1839
+ debugLogger.warn(
1840
+ `${envName}=${parsed} exceeds hard ceiling (${ceiling}); clamping.`
1841
+ );
1842
+ return ceiling;
1843
+ }
1844
+ return parsed;
1845
+ }
1846
+ __name(resolveSubagentBound, "resolveSubagentBound");
1847
+ function resolveSubagentMaxTurns(env = process.env) {
1848
+ return resolveSubagentBound(
1849
+ WORKFLOW_SUBAGENT_MAX_TURNS_ENV,
1850
+ DEFAULT_WORKFLOW_SUBAGENT_MAX_TURNS,
1851
+ HARD_WORKFLOW_SUBAGENT_MAX_TURNS_CEILING,
1852
+ env
1853
+ );
1854
+ }
1855
+ __name(resolveSubagentMaxTurns, "resolveSubagentMaxTurns");
1856
+ function resolveSubagentMaxTimeMinutes(env = process.env) {
1857
+ return resolveSubagentBound(
1858
+ WORKFLOW_SUBAGENT_MAX_MINUTES_ENV,
1859
+ DEFAULT_WORKFLOW_SUBAGENT_MAX_TIME_MINUTES,
1860
+ HARD_WORKFLOW_SUBAGENT_MAX_MINUTES_CEILING,
1861
+ env
1862
+ );
1863
+ }
1864
+ __name(resolveSubagentMaxTimeMinutes, "resolveSubagentMaxTimeMinutes");
1788
1865
  var WORKFLOW_SUBAGENT_DISALLOWED_TOOLS = [
1789
1866
  ToolNames.ASK_USER_QUESTION,
1790
1867
  ToolNames.SEND_MESSAGE,
@@ -1907,11 +1984,11 @@ function attachDispatchTranscript(config, agentId, prompt, agentName, emitter, a
1907
1984
  }
1908
1985
  __name(attachDispatchTranscript, "attachDispatchTranscript");
1909
1986
  async function runSingleDispatch(config, prompt, opts, attemptSignal, emitter, workflowAgentId, agentIdentity, onTokens) {
1910
- const { AgentHeadless, ContextState } = await import("./agent-headless-GJCQMURW.js");
1987
+ const { AgentHeadless, ContextState } = await import("./agent-headless-6WCF4J6N.js");
1911
1988
  const ctx = new ContextState();
1912
1989
  ctx.set("task_prompt", prompt);
1913
1990
  debugLogger.debug(`[workflow] Dispatch ${workflowAgentId}`);
1914
- if (opts.agentType === void 0 && opts.model === void 0 && opts.isolation === void 0 && opts.schema === void 0) {
1991
+ if (opts.agentType === void 0 && opts.model === void 0 && opts.isolation === void 0 && opts.schema === void 0 && opts.workingDir === void 0) {
1915
1992
  const subagent = await AgentHeadless.create(
1916
1993
  agentIdentity.name,
1917
1994
  config,
@@ -1924,8 +2001,8 @@ async function runSingleDispatch(config, prompt, opts, attemptSignal, emitter, w
1924
2001
  // and the loop guards never tripped — combined with the cancellation
1925
2002
  // bug below, workflows were effectively unkillable.
1926
2003
  {
1927
- max_turns: WORKFLOW_SUBAGENT_MAX_TURNS,
1928
- max_time_minutes: WORKFLOW_SUBAGENT_MAX_TIME_MINUTES
2004
+ max_turns: resolveSubagentMaxTurns(),
2005
+ max_time_minutes: resolveSubagentMaxTimeMinutes()
1929
2006
  },
1930
2007
  // T11 (PR #4732 R1): disallow SendMessage / ExitPlanMode to align with
1931
2008
  // upstream Tg8 — closes the back-channel that would let a subagent
@@ -2023,12 +2100,34 @@ ${WORKFLOW_SUBAGENT_SYSTEM_PROMPT_WITH_SCHEMA}` : WORKFLOW_SUBAGENT_SYSTEM_PROMP
2023
2100
  };
2024
2101
  let worktreeIsolation = null;
2025
2102
  let effectiveContext = config;
2103
+ if (opts.isolation !== void 0 && opts.workingDir !== void 0) {
2104
+ throw new Error(
2105
+ "agent({workingDir, isolation}): incompatible options. workingDir pins the agent to a worktree you already own; isolation creates a fresh one and removes it afterwards. Pass one."
2106
+ );
2107
+ }
2026
2108
  if (opts.isolation === "worktree") {
2027
2109
  worktreeIsolation = await provisionWorkflowWorktree(config);
2028
- effectiveContext = createWorktreeConfigOverride(
2110
+ effectiveContext = createDirScopedConfigOverride(
2029
2111
  config,
2030
2112
  worktreeIsolation.path
2031
2113
  );
2114
+ } else if (opts.workingDir !== void 0) {
2115
+ if (typeof opts.workingDir !== "string" || opts.workingDir.trim().length === 0) {
2116
+ throw new Error(
2117
+ "agent({workingDir}): must be a non-empty string naming an existing git worktree of this repository."
2118
+ );
2119
+ }
2120
+ const resolved = await resolveExternalWorktreeDir(
2121
+ config,
2122
+ opts.workingDir,
2123
+ "workingDir"
2124
+ );
2125
+ if ("error" in resolved) {
2126
+ throw new Error(
2127
+ `agent({workingDir: ${sanitizeForErrorMessage(JSON.stringify(opts.workingDir))}}): ${sanitizeForErrorMessage(resolved.error)}`
2128
+ );
2129
+ }
2130
+ effectiveContext = createDirScopedConfigOverride(config, resolved.path);
2032
2131
  }
2033
2132
  let onParentAbort;
2034
2133
  try {
@@ -2066,8 +2165,8 @@ ${WORKFLOW_SUBAGENT_SYSTEM_PROMPT_WITH_SCHEMA}` : WORKFLOW_SUBAGENT_SYSTEM_PROMP
2066
2165
  // own runConfig / maxTurns — these are workflow-level safety bounds,
2067
2166
  // not subagent-level preferences. P5 will refine via budget.
2068
2167
  runConfigOverrides: {
2069
- max_turns: WORKFLOW_SUBAGENT_MAX_TURNS,
2070
- max_time_minutes: WORKFLOW_SUBAGENT_MAX_TIME_MINUTES
2168
+ max_turns: resolveSubagentMaxTurns(),
2169
+ max_time_minutes: resolveSubagentMaxTimeMinutes()
2071
2170
  },
2072
2171
  eventEmitter
2073
2172
  }
@@ -2221,7 +2320,7 @@ async function provisionWorkflowWorktree(config) {
2221
2320
  };
2222
2321
  }
2223
2322
  __name(provisionWorkflowWorktree, "provisionWorkflowWorktree");
2224
- function createWorktreeConfigOverride(base, wtPath) {
2323
+ function createDirScopedConfigOverride(base, wtPath) {
2225
2324
  const ov = Object.create(base);
2226
2325
  ov.targetDir = wtPath;
2227
2326
  ov.cwd = wtPath;
@@ -2229,7 +2328,10 @@ function createWorktreeConfigOverride(base, wtPath) {
2229
2328
  ov.getCwd = () => wtPath;
2230
2329
  ov.getWorkingDir = () => wtPath;
2231
2330
  ov.getProjectRoot = () => wtPath;
2232
- const wtFileService = new FileDiscoveryService(wtPath);
2331
+ const wtFileService = new FileDiscoveryService(
2332
+ wtPath,
2333
+ base.getFileFilteringOptions().customIgnoreFiles
2334
+ );
2233
2335
  ov.fileDiscoveryService = wtFileService;
2234
2336
  ov.getFileService = () => wtFileService;
2235
2337
  const wtWorkspace = new WorkspaceContext(wtPath);
@@ -2237,7 +2339,7 @@ function createWorktreeConfigOverride(base, wtPath) {
2237
2339
  ov.getWorkspaceContext = () => wtWorkspace;
2238
2340
  return ov;
2239
2341
  }
2240
- __name(createWorktreeConfigOverride, "createWorktreeConfigOverride");
2342
+ __name(createDirScopedConfigOverride, "createDirScopedConfigOverride");
2241
2343
  async function cleanupWorkflowWorktree(isolation) {
2242
2344
  const wtService = new GitWorktreeService(isolation.repoRoot);
2243
2345
  const [hasChanges, hasUnmerged] = await Promise.all([
@@ -2853,7 +2955,7 @@ var WORKFLOW_PARAM_SCHEMA = {
2853
2955
  properties: {
2854
2956
  script: {
2855
2957
  type: "string",
2856
- 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? }\`. \`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). 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(1, 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.`
2958
+ 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 once progress has begun (a dispatch that produces no first response is bounded by the subagent time cap, not this watchdog); 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(1, 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.`
2857
2959
  },
2858
2960
  scriptPath: {
2859
2961
  type: "string",
@@ -3090,7 +3192,7 @@ Reach for one to be comprehensive (decompose the work and cover every part in pa
3090
3192
 
3091
3193
  **Runtime** \u2014 see the \`script\` parameter for the detailed authoring contract.
3092
3194
 
3093
- \`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 anywhere. Default \`max(1, 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. 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' })\` covers structured-output contracts, declarative-agent selection, model override, and git-worktree-isolated subagents. \`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.
3195
+ \`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 anywhere. Default \`max(1, 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.
3094
3196
 
3095
3197
  **Scout first, then orchestrate**
3096
3198