@qwen-code/qwen-code 0.24.4 → 0.24.5-nightly.20260924.ffea2d024e

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 (355) hide show
  1. package/bundled/agent-delegation/SKILL.md +56 -0
  2. package/bundled/browser-use/SKILL.md +11 -10
  3. package/bundled/browser-use/runtime/index.js +70 -31
  4. package/bundled/browser-use/runtime/native-host.js +1 -0
  5. package/bundled/browser-use/runtime/scripts/native-host-setup.js +1 -0
  6. package/bundled/computer-use/SKILL.md +182 -224
  7. package/bundled/qc-helper/docs/configuration/model-providers.md +13 -2
  8. package/bundled/qc-helper/docs/conversations-recovery.md +10 -0
  9. package/bundled/qc-helper/docs/features/browser-use.md +22 -12
  10. package/bundled/qc-helper/docs/features/channels/dingtalk.md +2 -2
  11. package/bundled/qc-helper/docs/features/channels/dws.md +7 -7
  12. package/bundled/qc-helper/docs/features/channels/feishu.md +1 -1
  13. package/bundled/qc-helper/docs/features/channels/github.md +13 -9
  14. package/bundled/qc-helper/docs/features/channels/gitlab.md +12 -5
  15. package/bundled/qc-helper/docs/features/channels/overview.md +121 -46
  16. package/bundled/qc-helper/docs/features/channels/plugins.md +12 -12
  17. package/bundled/qc-helper/docs/features/channels/qqbot.md +5 -5
  18. package/bundled/qc-helper/docs/features/channels/telegram.md +5 -5
  19. package/bundled/qc-helper/docs/features/channels/wecom.md +5 -4
  20. package/bundled/qc-helper/docs/features/channels/weixin.md +3 -3
  21. package/bundled/qc-helper/docs/features/code-review.md +4 -0
  22. package/bundled/qc-helper/docs/features/computer-use.md +1 -1
  23. package/bundled/qc-helper/docs/features/context-cost.md +7 -5
  24. package/bundled/qc-helper/docs/quickstart.md +14 -14
  25. package/bundled/qc-helper/docs/qwen-serve.md +10 -4
  26. package/bundled/review/SKILL.md +44 -9
  27. package/bundled/review/references/persistence.md +3 -4
  28. package/chunks/{MaxSizedBox-YRUOD55W.js → MaxSizedBox-P2GHN5YV.js} +33 -31
  29. package/chunks/{StandaloneSessionPicker-IIVDYLNQ.js → StandaloneSessionPicker-PEMEEZ3Z.js} +50 -48
  30. package/chunks/{acp-subagent-executor-5U2LT2ZS.js → acp-subagent-executor-OGMA6OLJ.js} +35 -33
  31. package/chunks/{acpAgent-GQCJ4KZY.js → acpAgent-A53IIIQE.js} +123 -97
  32. package/chunks/{agent-ZD5N6BSU.js → agent-JMMW45UJ.js} +18 -16
  33. package/chunks/{agent-headless-ZYDEB4YW.js → agent-headless-KPCHNPFD.js} +18 -16
  34. package/chunks/{anthropicContentGenerator-JOZNOMSX.js → anthropicContentGenerator-RDVBAABV.js} +3 -3
  35. package/chunks/{askUserQuestion-2NU6CXK2.js → askUserQuestion-V4OFZD5D.js} +1 -1
  36. package/chunks/{bridge-6BVTQBUK.js → bridge-TQHMDUPJ.js} +35 -33
  37. package/chunks/{channel-management-service-YN4A3BJ6.js → channel-management-service-Q2B7WUPL.js} +27 -10
  38. package/chunks/{channel-settings-store-GKXGAWDF.js → channel-settings-store-FKBBCMS2.js} +42 -40
  39. package/chunks/{channel-worker-group-AKPVHRUO.js → channel-worker-group-QNX4OIMZ.js} +5 -5
  40. package/chunks/{channel-worker-manager-TDAQSKWX.js → channel-worker-manager-IJCPV4WY.js} +24 -5
  41. package/chunks/{channel-worker-supervisor-PUMSN4J2.js → channel-worker-supervisor-ENJ2AE2N.js} +4 -4
  42. package/chunks/{chunk-GHJRFVPF.js → chunk-22JENOQB.js} +5 -4
  43. package/chunks/{chunk-4EQCVDVE.js → chunk-2FS4T477.js} +8 -8
  44. package/chunks/{chunk-CN6WQ2RW.js → chunk-2J2ZQVLC.js} +64 -2
  45. package/chunks/{chunk-ADPNUPK3.js → chunk-2JY2LCUU.js} +1 -1
  46. package/chunks/{chunk-CDPBJGOO.js → chunk-2SUKF4JL.js} +6 -6
  47. package/chunks/{chunk-KYFJLESB.js → chunk-3KDV7ZQJ.js} +38 -38
  48. package/chunks/{chunk-TOKDUK22.js → chunk-3S7UTGDX.js} +4 -4
  49. package/chunks/{chunk-2B2U26TT.js → chunk-3VJVCB2E.js} +4 -4
  50. package/chunks/{chunk-N4VKU36J.js → chunk-465XOJLQ.js} +1 -1
  51. package/chunks/{chunk-U2BS2NNZ.js → chunk-4UGMA2PY.js} +11 -89
  52. package/chunks/{chunk-MVC4XLNM.js → chunk-53IRNMPU.js} +118 -5
  53. package/chunks/{chunk-VGLXXHTF.js → chunk-5BLOZPTW.js} +1 -1
  54. package/chunks/{chunk-32MV4KJS.js → chunk-5Q7BILXI.js} +32 -9
  55. package/chunks/{chunk-DPEB6S2R.js → chunk-5QEJKW7V.js} +3522 -3070
  56. package/chunks/{chunk-NBWGGZY2.js → chunk-6MYJD4ZS.js} +13 -19
  57. package/chunks/{chunk-TBJBJDC3.js → chunk-75AREKQ5.js} +1 -1
  58. package/chunks/{chunk-P5OXAI4R.js → chunk-7ELTXG6G.js} +6 -6
  59. package/chunks/{chunk-GGUOO2XC.js → chunk-7RCAMBLN.js} +1 -1
  60. package/chunks/{chunk-72PBMHN5.js → chunk-ACUMQNP3.js} +35 -18
  61. package/chunks/{chunk-I46MJUYS.js → chunk-AT4FRIF6.js} +1 -1
  62. package/chunks/{chunk-CK5HUN74.js → chunk-BAV7Z5KE.js} +527 -135
  63. package/chunks/{chunk-LYEINKJD.js → chunk-BCW42UYG.js} +16 -12
  64. package/chunks/{chunk-N3HID7XO.js → chunk-BN3JSE4B.js} +7 -7
  65. package/chunks/{chunk-6VYKKLTW.js → chunk-BUMI6PRL.js} +5 -5
  66. package/chunks/{chunk-DKXSLDQN.js → chunk-C6TGSAYO.js} +4 -4
  67. package/chunks/{chunk-42HJVUP3.js → chunk-CD7AASGR.js} +1 -1
  68. package/chunks/{chunk-TS4Y2MHO.js → chunk-CGREZDGO.js} +1 -1
  69. package/chunks/chunk-CLNDQINM.js +523 -0
  70. package/chunks/{chunk-LNUQA3OE.js → chunk-CVRZNFXO.js} +1 -1
  71. package/chunks/{chunk-YWZOEHBT.js → chunk-DE2WI7RU.js} +192 -62
  72. package/chunks/{chunk-OD6ZS4US.js → chunk-DN7TVNHS.js} +1 -1
  73. package/chunks/{chunk-SAP35BR2.js → chunk-DNUSU3MC.js} +1 -1
  74. package/chunks/{chunk-WXCSKU3W.js → chunk-DV3DHBN6.js} +3 -3
  75. package/chunks/{chunk-RIQQLEYE.js → chunk-DVQCM4OJ.js} +1 -1
  76. package/chunks/{chunk-UNN4M5Z7.js → chunk-DY44AVOC.js} +1 -1
  77. package/chunks/{chunk-QZGPSTNK.js → chunk-EB3IUZV4.js} +3 -3
  78. package/chunks/{chunk-TZOI5TKT.js → chunk-EEXUIATI.js} +2 -2
  79. package/chunks/chunk-EMGHODF7.js +56 -0
  80. package/chunks/{chunk-3KD5I3G5.js → chunk-EMMJKUYQ.js} +3 -3
  81. package/chunks/{chunk-LW7WW3Z5.js → chunk-ERGQUKZ2.js} +1 -1
  82. package/chunks/{chunk-N25B6FZN.js → chunk-EYCDA5MN.js} +2 -0
  83. package/chunks/{chunk-H5I6FURC.js → chunk-F3ADPR3A.js} +20 -20
  84. package/chunks/{chunk-GNTHJTS2.js → chunk-F4WSLDSL.js} +1 -1
  85. package/chunks/{chunk-TX5DMDUG.js → chunk-FAXPWBVN.js} +1 -1
  86. package/chunks/{chunk-X2R47SFR.js → chunk-FLVPNMCS.js} +1 -1
  87. package/chunks/{chunk-2WXS6WNU.js → chunk-FQT6ZHKU.js} +17 -11
  88. package/chunks/{chunk-DXXCNZW4.js → chunk-GDOTFZKX.js} +7 -7
  89. package/chunks/{chunk-GZKSQ222.js → chunk-GI3G24M2.js} +6 -6
  90. package/chunks/{chunk-KY4HZXLV.js → chunk-GLPNIOEV.js} +33 -2
  91. package/chunks/{chunk-UBBHH6V4.js → chunk-GOIJGGKX.js} +7 -7
  92. package/chunks/{chunk-6PRSQUPJ.js → chunk-GQZZGEMS.js} +1 -1
  93. package/chunks/{chunk-5SLIP7KC.js → chunk-GSR2VAE6.js} +10 -10
  94. package/chunks/{chunk-4QYFUIEV.js → chunk-GT3ISCLZ.js} +45 -31
  95. package/chunks/{chunk-HH7R6RLK.js → chunk-GTQ35GRO.js} +1 -1
  96. package/chunks/{chunk-6IGW6HIV.js → chunk-GXLCL2SC.js} +1 -1
  97. package/chunks/{chunk-5OEY6RVW.js → chunk-HIX5TSC5.js} +4 -4
  98. package/chunks/{chunk-QROZDIMB.js → chunk-HJUAP436.js} +2 -2
  99. package/chunks/{chunk-K22NDLL4.js → chunk-HQTMH3GI.js} +3 -3
  100. package/chunks/{chunk-62DRQAZM.js → chunk-HXNXTDZQ.js} +1 -1
  101. package/chunks/{chunk-5A5VS7QC.js → chunk-I2TYEHKM.js} +2 -2
  102. package/chunks/{chunk-4VSTV4C2.js → chunk-IH22ZGZI.js} +53 -2
  103. package/chunks/{chunk-F7ZEBIEN.js → chunk-IJYQAXUO.js} +4 -4
  104. package/chunks/{chunk-2QLTKHIH.js → chunk-IS43JHQK.js} +1 -1
  105. package/chunks/{chunk-HS5OZTQF.js → chunk-J2FLXQJM.js} +1 -1
  106. package/chunks/{chunk-L4N5IWLI.js → chunk-J4DEZKGQ.js} +1 -1
  107. package/chunks/{chunk-TYMHGPN6.js → chunk-JIT2CBTI.js} +1 -1
  108. package/chunks/{chunk-D2H63VR2.js → chunk-JYOYZTGR.js} +4 -4
  109. package/chunks/{chunk-DBEN5QEB.js → chunk-K3NURH33.js} +3 -3
  110. package/chunks/{chunk-VTNSZQOF.js → chunk-K7WPYXOF.js} +2 -2
  111. package/chunks/{chunk-JE3J5HFM.js → chunk-KAOHUUM7.js} +62 -251
  112. package/chunks/{chunk-5NZED4YR.js → chunk-KC7DLSY7.js} +1 -1
  113. package/chunks/{chunk-U6BUJ2ZJ.js → chunk-KMBELEHL.js} +1 -1
  114. package/chunks/{chunk-BNPJT34T.js → chunk-KXKRYU57.js} +4 -4
  115. package/chunks/{chunk-MAY3R2RG.js → chunk-KZD6ZVFD.js} +1 -1
  116. package/chunks/{chunk-QKXZOHHQ.js → chunk-LDURD6EP.js} +15 -62
  117. package/chunks/{chunk-4JCRSCRO.js → chunk-LJ6YZBD6.js} +1 -1
  118. package/chunks/{chunk-VOHPPFJI.js → chunk-MHAVM3RF.js} +1 -1
  119. package/chunks/{chunk-MVLIEY6W.js → chunk-NFRX3HKQ.js} +3 -3
  120. package/chunks/{chunk-47C3HPMW.js → chunk-O5YL6KSX.js} +47 -18
  121. package/chunks/{chunk-K5NFICAO.js → chunk-ONIJYCSH.js} +3 -3
  122. package/chunks/{chunk-CIS4SY3R.js → chunk-PPBZHGEQ.js} +3 -3
  123. package/chunks/{chunk-PB7JBAHF.js → chunk-PVBIEIVZ.js} +0 -1
  124. package/chunks/{chunk-6N2PJAZG.js → chunk-PX2ZOOGQ.js} +1 -1
  125. package/chunks/{chunk-NNN2PKPV.js → chunk-PYYPSK6Q.js} +36 -495
  126. package/chunks/chunk-Q4FJVWI4.js +78 -0
  127. package/chunks/{chunk-PA4HU5IQ.js → chunk-QATPE3SN.js} +13 -7
  128. package/chunks/{chunk-HS2VQRHZ.js → chunk-QOBSJV7J.js} +3 -3
  129. package/chunks/{chunk-6NA357SF.js → chunk-QTNSMJKU.js} +1 -1
  130. package/chunks/{chunk-H4ET3HHT.js → chunk-QXCBFLYD.js} +1 -1
  131. package/chunks/{chunk-ZLGYH2QW.js → chunk-QZG34NFD.js} +3 -3
  132. package/chunks/{chunk-ZX6EZ7EH.js → chunk-RBE3WRSN.js} +3 -3
  133. package/chunks/{chunk-H4W6TJFJ.js → chunk-RONRTFAQ.js} +1 -1
  134. package/chunks/{chunk-STUJ7IMZ.js → chunk-SI7XKACY.js} +56 -56
  135. package/chunks/{chunk-WH7PDTZL.js → chunk-SJ2JVXQY.js} +8830 -7908
  136. package/chunks/{chunk-RFD37KE2.js → chunk-SMEUKYCR.js} +1 -1
  137. package/chunks/{chunk-OQMLQJEX.js → chunk-TENLV7C6.js} +5 -5
  138. package/chunks/{chunk-SNMYJZZG.js → chunk-TKEDWZ44.js} +5 -5
  139. package/chunks/{chunk-NXZD3VNX.js → chunk-TL7DSR47.js} +1 -1
  140. package/chunks/{chunk-J5C5SQQJ.js → chunk-TTHRVIPY.js} +62 -7
  141. package/chunks/{chunk-YIHOHHJL.js → chunk-TZHXHWEW.js} +1 -1
  142. package/chunks/{chunk-BTEPFM7T.js → chunk-UBL3PRRZ.js} +3 -3
  143. package/chunks/{chunk-XWCLIEJ2.js → chunk-UDXFQTUI.js} +2 -2
  144. package/chunks/{chunk-Z4RLAAF3.js → chunk-UO7RMX3D.js} +3 -3
  145. package/chunks/{chunk-A5QPMBRL.js → chunk-USEHQ5O2.js} +1 -1
  146. package/chunks/{chunk-NIB5MPTB.js → chunk-UYCJVDPK.js} +1 -1
  147. package/chunks/{chunk-52YR7XBE.js → chunk-VFE7QIOE.js} +20 -20
  148. package/chunks/{chunk-7WVZQVYU.js → chunk-VFYAQLSV.js} +2 -2
  149. package/chunks/{chunk-VPALWDQL.js → chunk-VUIH3BQL.js} +31 -12
  150. package/chunks/{chunk-LCTSR5TZ.js → chunk-W7TLK2JE.js} +2 -2
  151. package/chunks/{chunk-2VS5EEXU.js → chunk-WFHS3WCK.js} +136 -9
  152. package/chunks/{chunk-REFGAEP6.js → chunk-WNBI4ZWD.js} +2 -2
  153. package/chunks/{chunk-5NFAKADR.js → chunk-WZCVB2ER.js} +1 -36
  154. package/chunks/{chunk-B3BOQ562.js → chunk-XBIOF5ZN.js} +5 -5
  155. package/chunks/{chunk-E2FFBBLC.js → chunk-XQ4ALB6S.js} +2 -2
  156. package/chunks/{chunk-7I63HEBQ.js → chunk-YCWU2MD3.js} +3 -3
  157. package/chunks/{chunk-ODAWVZRE.js → chunk-YHGIEYIF.js} +25 -23
  158. package/chunks/{chunk-DYLGEL4Y.js → chunk-YID5BOAE.js} +6 -1
  159. package/chunks/{chunk-ILXHAHOV.js → chunk-YPY4FZDT.js} +5 -5
  160. package/chunks/{chunk-JVKG7KDB.js → chunk-YQYJ2SGK.js} +3 -3
  161. package/chunks/{chunk-73BAOEMB.js → chunk-ZG7MLW6R.js} +1 -1
  162. package/chunks/{chunk-IFWXQC7B.js → chunk-ZKZTUR7U.js} +1 -1
  163. package/chunks/{codex-subagent-executor-VSB4XPDB.js → codex-subagent-executor-3DP5XYNE.js} +35 -33
  164. package/chunks/{config-utils-DDUKVYVI.js → config-utils-GLX7SJ6O.js} +38 -34
  165. package/chunks/{contextCommand-GOW5PPVJ.js → contextCommand-DGFYOWR5.js} +33 -31
  166. package/chunks/{core-runtime-RP5WAAAJ.js → core-runtime-2LYDGU5V.js} +32 -30
  167. package/chunks/{create-sub-session-JTEIPMTJ.js → create-sub-session-35UOGHD7.js} +33 -31
  168. package/chunks/{daemon-Y6AOK7LF.js → daemon-D4OAVQKB.js} +1 -1
  169. package/chunks/{daemon-git-worktree-guard-W5I6GKLX.js → daemon-git-worktree-guard-3ITNVX66.js} +32 -30
  170. package/chunks/{daemon-status-provider-PJDKC6U5.js → daemon-status-provider-LBY4YRSJ.js} +40 -38
  171. package/chunks/{daemon-trust-policy-VXNR5PJS.js → daemon-trust-policy-ZNFE2I42.js} +38 -36
  172. package/chunks/{daemon-trust-policy-monitor-VKUSL32L.js → daemon-trust-policy-monitor-IUMXEDZO.js} +38 -36
  173. package/chunks/{deferred-core-runtime-PCWM2NAR.js → deferred-core-runtime-DJBM4M2A.js} +32 -30
  174. package/chunks/{dist-54LGNLWW.js → dist-3M75XY4G.js} +1 -1
  175. package/chunks/{dist-YZBMQPNS.js → dist-6U5NQYA7.js} +5 -5
  176. package/chunks/{dist-FVMLRUVM.js → dist-AS2RPYOB.js} +1 -1
  177. package/chunks/{dist-HANHY2MK.js → dist-GFT4GU72.js} +2 -2
  178. package/chunks/{dist-Y5GP7SWL.js → dist-J7JK3GPY.js} +10 -9
  179. package/chunks/{dist-O723VE2K.js → dist-JTPRKF5H.js} +30 -27
  180. package/chunks/{dist-MGZKUISU.js → dist-MOO5VOC5.js} +7 -20
  181. package/chunks/{dist-IZ66D5A3.js → dist-NJ2L5QKL.js} +1 -1
  182. package/chunks/{dist-EI2XAB4W.js → dist-YC6LDCKH.js} +22 -28
  183. package/chunks/{edit-NZLWHALE.js → edit-XOPO64IC.js} +20 -18
  184. package/chunks/{enter-worktree-J46XVFRS.js → enter-worktree-55OWD4LT.js} +4 -3
  185. package/chunks/{enterPlanMode-I4IZ27WH.js → enterPlanMode-T3GKYG47.js} +18 -16
  186. package/chunks/{environment-RF7WL5VP.js → environment-DLKZ42JH.js} +36 -32
  187. package/chunks/{errors-5F35O3KE.js → errors-UBNSHKPT.js} +34 -32
  188. package/chunks/{execution-sandbox-settings-HIYVUBII.js → execution-sandbox-settings-3WJ67GX3.js} +3 -1
  189. package/chunks/{execution-tool-EWS25O7E.js → execution-tool-J6W5JVU2.js} +21 -19
  190. package/chunks/{execution-worker-UAASM5HN.js → execution-worker-NB7VOXHE.js} +24 -22
  191. package/chunks/{exit-worktree-BC4SDZCC.js → exit-worktree-MI6N4OUP.js} +4 -3
  192. package/chunks/{exitPlanMode-HEBWGYVF.js → exitPlanMode-5SU4CL6O.js} +18 -16
  193. package/chunks/{fast-path-O2LJG7DE.js → fast-path-PMBHIP4A.js} +4 -4
  194. package/chunks/{fast-path-settings-TQAYWLXR.js → fast-path-settings-VIYSH3SD.js} +2 -2
  195. package/chunks/{glob-YKXRLC3S.js → glob-PFM2ZX2Q.js} +18 -16
  196. package/chunks/{goal-tools-QSX7V2QH.js → goal-tools-BFXHBNL3.js} +18 -16
  197. package/chunks/{handleAutoUpdate-JVVDCWPS.js → handleAutoUpdate-NS4L5IPQ.js} +34 -32
  198. package/chunks/{i18n-TA4BNBF7.js → i18n-MG7AUI3C.js} +32 -30
  199. package/chunks/{initializer-ZHOONLTG.js → initializer-2EHWDIL7.js} +38 -36
  200. package/chunks/{installationInfo-22Q7JVZC.js → installationInfo-IUK6GWUL.js} +32 -30
  201. package/chunks/{list-5DY27M3G.js → list-FVYHW6UK.js} +41 -39
  202. package/chunks/{llm-T6YVOAHI.js → llm-CIEL5EA7.js} +85 -74
  203. package/chunks/{llm-content-generator-7ZKU73HA.js → llm-content-generator-QWJIQRUP.js} +3 -3
  204. package/chunks/{loadedSettingsAdapter-JFIYHT25.js → loadedSettingsAdapter-GDD23BZ4.js} +38 -36
  205. package/chunks/{local-execution-environment-6VWOEJYW.js → local-execution-environment-7M6SPJXO.js} +24 -22
  206. package/chunks/{loggingContentGenerator-DIC5SOXG.js → loggingContentGenerator-MGVME2MV.js} +20 -18
  207. package/chunks/{managed-npm-update-5TDNQ2XJ.js → managed-npm-update-F3EMYFJE.js} +32 -30
  208. package/chunks/managed-runtime-attestation-worker-G23AEEMF.js +367 -0
  209. package/chunks/{mcp-7ZE6BR36.js → mcp-2LXAQFBW.js} +38 -36
  210. package/chunks/{model-call-collection-W2WDYVH7.js → model-call-collection-JLUMVNCT.js} +1 -1
  211. package/chunks/{model-configuration-WUA7G4GY.js → model-configuration-GUR32M76.js} +38 -36
  212. package/chunks/{modelConfigUtils-CSAC36WP.js → modelConfigUtils-Y3UZ7DR5.js} +33 -31
  213. package/chunks/{monitor-XCEGKLFN.js → monitor-DOSUZV4I.js} +18 -16
  214. package/chunks/{nonInteractiveCli-L7ON6MBN.js → nonInteractiveCli-F7YPIV3H.js} +74 -73
  215. package/chunks/{nonInteractiveToolExecutor-KLKO6IKA.js → nonInteractiveToolExecutor-WO2RE5HY.js} +19 -17
  216. package/chunks/{notebook-edit-QCYO2MGD.js → notebook-edit-CUHNYHP5.js} +19 -17
  217. package/chunks/{omni-QWKKNBSE.js → omni-PYA4ZCID.js} +10 -7
  218. package/chunks/{openaiContentGenerator-PFU4NAXB.js → openaiContentGenerator-GS2ORQMQ.js} +12 -10
  219. package/chunks/{openaiResponsesContentGenerator-MBZKLYFV.js → openaiResponsesContentGenerator-62YOYDIA.js} +5 -5
  220. package/chunks/{pidfile-Y6JFLZSG.js → pidfile-DEYAILAH.js} +32 -30
  221. package/chunks/{processUtils-WGMBDDAF.js → processUtils-E3CERUVZ.js} +2 -2
  222. package/chunks/{prompt-terminal-ledger-DKFZL5ZJ.js → prompt-terminal-ledger-YRZHHREO.js} +33 -31
  223. package/chunks/{qwenContentGenerator-Q6QY4LGK.js → qwenContentGenerator-2C3J7HYV.js} +21 -19
  224. package/chunks/{reactive-degrade-V2VC7H7O.js → reactive-degrade-GDNBQBBY.js} +6 -6
  225. package/chunks/{read-file-NFZY7N2C.js → read-file-ITAQTQHJ.js} +6 -3
  226. package/chunks/{record-artifact-K4XSMW4X.js → record-artifact-XP3X7RE5.js} +3 -2
  227. package/chunks/{record-source-XZCI3IGU.js → record-source-2VBLKVIE.js} +2 -2
  228. package/chunks/{report-findings-MCGXBQFX.js → report-findings-D2QUYUOG.js} +4 -3
  229. package/chunks/{request-shutdown-TT62PREA.js → request-shutdown-R5SA5GE3.js} +1 -1
  230. package/chunks/{resumeHistoryUtils-HPFUAULU.js → resumeHistoryUtils-L2UNUBSP.js} +35 -33
  231. package/chunks/{ripGrep-PNFY7H5A.js → ripGrep-EAASDYG3.js} +8 -5
  232. package/chunks/{run-qwen-serve-LHARMZ7C.js → run-qwen-serve-LN76E4VH.js} +278 -79
  233. package/chunks/{runtime-R3ECTRPN.js → runtime-UL6DZYHW.js} +43 -41
  234. package/chunks/{sandboxConfig-LQ2JAICC.js → sandboxConfig-2N3BXDJA.js} +34 -32
  235. package/chunks/{scheduled-tasks-SHRO5IGN.js → scheduled-tasks-DGIGRBYW.js} +38 -36
  236. package/chunks/{scheduler-SDVHFPG4.js → scheduler-BCHAOQWV.js} +34 -32
  237. package/chunks/{send-message-3UM7XRTB.js → send-message-FBU6WDID.js} +1 -1
  238. package/chunks/{serve-ZIDUQEXD.js → serve-CZZHMYCY.js} +38 -36
  239. package/chunks/{server-5R5R5J4B.js → server-DV6PIMPW.js} +1789 -375
  240. package/chunks/{session-JP4CDING.js → session-PFPIIM3N.js} +75 -74
  241. package/chunks/{session-attachments-root-UMG3UM6R.js → session-attachments-root-ALF36B7T.js} +32 -30
  242. package/chunks/{session-pr-refresh-VCZDCDQF.js → session-pr-refresh-E4DAPHGT.js} +37 -35
  243. package/chunks/{settings-ARQIF4FZ.js → settings-YRMNIP6J.js} +37 -35
  244. package/chunks/{shell-EM2EW5GF.js → shell-UMZ5J6UJ.js} +18 -16
  245. package/chunks/{skill-ARBE3YO6.js → skill-WQBDICQA.js} +52 -13
  246. package/chunks/{skill-settings-XUKYH6QL.js → skill-settings-W4OLDKUA.js} +38 -36
  247. package/chunks/{spawnChannel-OUG6AG5B.js → spawnChannel-EAFCNPOA.js} +34 -32
  248. package/chunks/{standalone-update-ITTOS33Q.js → standalone-update-D7JQ27GQ.js} +33 -31
  249. package/chunks/{start-opentui-ui-HPBFC62Q.js → start-opentui-ui-43ATEBO2.js} +87 -86
  250. package/chunks/{startInteractiveUI-PJDI6SSE.js → startInteractiveUI-HJLPYP6N.js} +1040 -969
  251. package/chunks/{task-create-PEI7AJLE.js → task-create-PVF66J3R.js} +2 -2
  252. package/chunks/{task-update-MQZRWBGK.js → task-update-RSIITTOK.js} +2 -2
  253. package/chunks/{team-create-TBFNDDRY.js → team-create-QKZREJRV.js} +18 -16
  254. package/chunks/{team-plan-approval-57CJ2K3A.js → team-plan-approval-BU4HTFUI.js} +18 -16
  255. package/chunks/{terminal-image-renderer-QQ4343Q3.js → terminal-image-renderer-7KWVCSJU.js} +32 -30
  256. package/chunks/{theme-manager-CNGZ6T4K.js → theme-manager-I4S4TGZV.js} +32 -30
  257. package/chunks/{tool-call-PLSQ34VE.js → tool-call-DUHP6UXC.js} +2 -2
  258. package/chunks/{tool-result-media-R2EWIHTZ.js → tool-result-media-R2JNWHDG.js} +10 -7
  259. package/chunks/{tool-search-WPQALMLE.js → tool-search-4LU3SWMU.js} +7 -4
  260. package/chunks/{total-session-admission-MXIAY76R.js → total-session-admission-AIC2VP5H.js} +35 -33
  261. package/chunks/{trustedFolders-ZQQ2ETMA.js → trustedFolders-WVBPJOAW.js} +33 -31
  262. package/chunks/{update-relaunch-XVIHEJCH.js → update-relaunch-SON2QA6T.js} +5 -5
  263. package/chunks/{updateCheck-YQBGCMNZ.js → updateCheck-THHMK6IX.js} +32 -30
  264. package/chunks/{upload-config-UW6QN3CL.js → upload-config-VPUAXWRX.js} +4 -4
  265. package/chunks/{useAutoAcceptIndicator-GKQRK7OB.js → useAutoAcceptIndicator-LTUZXFZC.js} +41 -39
  266. package/chunks/{validateNonInterActiveAuth-JJTHAV5P.js → validateNonInterActiveAuth-KUNH2FOL.js} +72 -71
  267. package/chunks/{version-MZOCP6O7.js → version-GMDVWXUG.js} +1 -1
  268. package/chunks/{web-fetch-NX5NKVE3.js → web-fetch-MM4TA6NJ.js} +13 -9
  269. package/chunks/{web-search-VLFIKS3K.js → web-search-IAWACMBT.js} +4 -4
  270. package/chunks/{web-shell-static-GI6FVIMI.js → web-shell-static-E3O6NW7Y.js} +4 -3
  271. package/chunks/{workflow-EGMC2K5T.js → workflow-5MTBNIH6.js} +22 -20
  272. package/chunks/{workspace-providers-status-KPBNO6UE.js → workspace-providers-status-5M3UOWCJ.js} +43 -41
  273. package/chunks/{workspace-registration-store-WWCOY7D7.js → workspace-registration-store-MXY4VBW4.js} +1 -1
  274. package/chunks/{workspace-registry-LAS7KJOK.js → workspace-registry-KTTGYUOC.js} +35 -33
  275. package/chunks/{workspace-runtime-coordinator-7VEYHXEU.js → workspace-runtime-coordinator-V6MBZQVT.js} +36 -34
  276. package/chunks/{workspace-service-OUE5MDOT.js → workspace-service-UMQUHB32.js} +40 -38
  277. package/chunks/{workspace-skills-status-OHGY3ENO.js → workspace-skills-status-F7IWMYNU.js} +41 -39
  278. package/chunks/{workspace-trust-reconciler-E766QSRS.js → workspace-trust-reconciler-MDLI73QF.js} +41 -39
  279. package/chunks/{write-file-ZLRRA4ZT.js → write-file-LHOV3BL3.js} +21 -19
  280. package/chunks/{zoom-image-EX3C2PMJ.js → zoom-image-VTPGT3GB.js} +10 -6
  281. package/cli-entry.js +13 -0
  282. package/cli.js +24 -12
  283. package/execution-worker.js +1 -1
  284. package/export-transcript-document.css +1 -1
  285. package/export-transcript-document.js +104 -104
  286. package/package.json +3 -3
  287. package/web-shell/assets/{abnfDiagram-VCTEODGH-Dbkc1x4g.js → abnfDiagram-VCTEODGH-BIzY5prP.js} +1 -1
  288. package/web-shell/assets/{arc-BCuaHw2a.js → arc-DTPoYgqM.js} +1 -1
  289. package/web-shell/assets/{architectureDiagram-5GKGNRK7-CYnlVHx4.js → architectureDiagram-5GKGNRK7-DMRFm81i.js} +1 -1
  290. package/web-shell/assets/{blockDiagram-NRAW4CY4-fvsmUmR-.js → blockDiagram-NRAW4CY4-TcNGiiEi.js} +1 -1
  291. package/web-shell/assets/{c4Diagram-UCG6FXSJ-BAjnpe2_.js → c4Diagram-UCG6FXSJ-CsSMrmkn.js} +1 -1
  292. package/web-shell/assets/channel-CX6nRLY5.js +1 -0
  293. package/web-shell/assets/{chunk-2Q5K7J3B-B92_XH72.js → chunk-2Q5K7J3B-DLUS2OKz.js} +1 -1
  294. package/web-shell/assets/{chunk-5VM5RSS4-nFcltF2f.js → chunk-5VM5RSS4-Dj3neojq.js} +1 -1
  295. package/web-shell/assets/{chunk-F27PBJKO-DuQ75APu.js → chunk-F27PBJKO-DKTGRC_7.js} +1 -1
  296. package/web-shell/assets/{chunk-G27WJ6UU-CmXIQ06U.js → chunk-G27WJ6UU-Bhhhl7xI.js} +1 -1
  297. package/web-shell/assets/{chunk-JWPE2WC7-pplos71B.js → chunk-JWPE2WC7-7AfyvpFL.js} +1 -1
  298. package/web-shell/assets/{chunk-LCL6LL3I-BHK6p5jT.js → chunk-LCL6LL3I-C50Eay3L.js} +1 -1
  299. package/web-shell/assets/{chunk-POPQ4Y6H-Bw6egCVb.js → chunk-POPQ4Y6H-CRBPbOWe.js} +1 -1
  300. package/web-shell/assets/{chunk-SVP7TREG-BKSUyFl-.js → chunk-SVP7TREG-Ctr7vVt3.js} +1 -1
  301. package/web-shell/assets/{chunk-XXDRQBXY-DBK4vu_O.js → chunk-XXDRQBXY-B4ExJpUK.js} +1 -1
  302. package/web-shell/assets/classDiagram-DTDB5LWJ-DvX73GRE.js +1 -0
  303. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DvX73GRE.js +1 -0
  304. package/web-shell/assets/{cose-bilkent-JH36ORCC-D8AjDuhC.js → cose-bilkent-JH36ORCC-Cllr81g5.js} +1 -1
  305. package/web-shell/assets/{cynefin-OW5HDTMX-F6ziGG13.js → cynefin-OW5HDTMX-dbFc7Jqn.js} +1 -1
  306. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-1GrUeu9I.js → cynefinDiagram-5FMLGOSQ-CHqViWsG.js} +1 -1
  307. package/web-shell/assets/{dagre-3AP2YEHR-CUMduMoA.js → dagre-3AP2YEHR-DVHuD-Ma.js} +1 -1
  308. package/web-shell/assets/{diagram-S7CK7UJ4-B0LbPx0Y.js → diagram-S7CK7UJ4-B6P5dSD8.js} +1 -1
  309. package/web-shell/assets/{diagram-UQ7AKVKN-Vl7zFXEJ.js → diagram-UQ7AKVKN-BPdvjv7b.js} +1 -1
  310. package/web-shell/assets/{diagram-VSXAHHWV-C4khzWQM.js → diagram-VSXAHHWV-Cf3wqtZb.js} +1 -1
  311. package/web-shell/assets/{diagram-VX7I27RA-PqprIzeP.js → diagram-VX7I27RA-iT7vh4BN.js} +1 -1
  312. package/web-shell/assets/{diagram-Z3DM3KII-CbGTxGOI.js → diagram-Z3DM3KII-CBq-pKMo.js} +1 -1
  313. package/web-shell/assets/{ebnfDiagram-PWID7BFC-CigwMsaO.js → ebnfDiagram-PWID7BFC-CWo8D0_l.js} +1 -1
  314. package/web-shell/assets/{erDiagram-SSCWMZ5O-L4s33GGv.js → erDiagram-SSCWMZ5O-BdcX9VXM.js} +1 -1
  315. package/web-shell/assets/{flowDiagram-A5DVABFB-D7mgIH88.js → flowDiagram-A5DVABFB-D2uR47D0.js} +1 -1
  316. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-D0YhclTy.js → ganttDiagram-EL5Y4UJY-Du1Q-imH.js} +1 -1
  317. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-Bwf59IHb.js → gitGraphDiagram-WWUBYQGX-ZytI2J6R.js} +1 -1
  318. package/web-shell/assets/{index-CJ63h8ay.js → index-B5zIMd3G.js} +1 -1
  319. package/web-shell/assets/index-DuwfO01z.css +36 -0
  320. package/web-shell/assets/index-t2okSTsk.js +2407 -0
  321. package/web-shell/assets/{infoDiagram-RXCK75RN-T0Ewe5gl.js → infoDiagram-RXCK75RN-DeZwQFlp.js} +1 -1
  322. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-BIdQGz1A.js → ishikawaDiagram-5VMMS53U-pDgu1jeK.js} +1 -1
  323. package/web-shell/assets/{journeyDiagram-EYS64GPL-BNxIYRys.js → journeyDiagram-EYS64GPL-ZCvpl8hA.js} +1 -1
  324. package/web-shell/assets/{kanban-definition-3QL26DDD-DCSrG78S.js → kanban-definition-3QL26DDD-C9qY0GRv.js} +1 -1
  325. package/web-shell/assets/{layout-Br6mhJlI.js → layout-BixptjLn.js} +1 -1
  326. package/web-shell/assets/{linear-DCb_qQM9.js → linear-DjkqGiAW.js} +1 -1
  327. package/web-shell/assets/{mermaid.core-U7MUxrwT.js → mermaid.core-BSX0Vr31.js} +6 -6
  328. package/web-shell/assets/{mindmap-definition-FBJOCRG2-B-E16G7A.js → mindmap-definition-FBJOCRG2-CBrjZekm.js} +1 -1
  329. package/web-shell/assets/{pegDiagram-XKGWAZYB-DprVaT2C.js → pegDiagram-XKGWAZYB-DQIDACM3.js} +1 -1
  330. package/web-shell/assets/{pieDiagram-E7YTZNPT-BpWhdw8B.js → pieDiagram-E7YTZNPT-CjeBecJ1.js} +1 -1
  331. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-B_rgquel.js → quadrantDiagram-AXDQQJYC-s_fyH42A.js} +1 -1
  332. package/web-shell/assets/{railroadDiagram-O6MQD6OU-tn5q9Df1.js → railroadDiagram-O6MQD6OU-CruAGcMa.js} +1 -1
  333. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-DcXXYQ7a.js → requirementDiagram-EFPCY7ZU-CTBv3FSX.js} +1 -1
  334. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-XFCBKj8s.js → sankeyDiagram-P5KCCOFB-CjFlz0KT.js} +1 -1
  335. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-C9HOvsOz.js → sequenceDiagram-WJ2MYXX4-DRNDmQQw.js} +1 -1
  336. package/web-shell/assets/{sizeCapture-X5ZJPWSS-BF4RFDcQ.js → sizeCapture-X5ZJPWSS-BvBdgQsw.js} +1 -1
  337. package/web-shell/assets/{stateDiagram-HBIQ2CUA-CFvvXZXi.js → stateDiagram-HBIQ2CUA-D1dJtfN0.js} +1 -1
  338. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DXVOtEux.js +1 -0
  339. package/web-shell/assets/{swimlanes-XN3QIQJK-BeHFLDui.js → swimlanes-XN3QIQJK-QylCxvYC.js} +1 -1
  340. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-BqCkfjdF.js +8 -0
  341. package/web-shell/assets/{timeline-definition-24CTP7MA-D563SQiU.js → timeline-definition-24CTP7MA-Cw56FtZw.js} +1 -1
  342. package/web-shell/assets/{vennDiagram-4TSXK5OY-BmVC7Jer.js → vennDiagram-4TSXK5OY-DyA0dekR.js} +1 -1
  343. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-Dlzz2LC2.js → wardleyDiagram-VM6X3IG4-CoAgxg4O.js} +1 -1
  344. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-CiOybQQL.js → xychartDiagram-S5SC5T6Z-kH3Md0xm.js} +1 -1
  345. package/web-shell/index.html +2 -2
  346. package/web-shell/sw.js +1 -1
  347. package/bundled/computer-use/references/macos.md +0 -208
  348. package/bundled/computer-use/references/windows-linux.md +0 -247
  349. package/web-shell/assets/channel-BzQAUXQG.js +0 -1
  350. package/web-shell/assets/classDiagram-DTDB5LWJ-D8E4B_In.js +0 -1
  351. package/web-shell/assets/classDiagram-v2-JRS7N3AN-D8E4B_In.js +0 -1
  352. package/web-shell/assets/index-C0YFCwlu.js +0 -2337
  353. package/web-shell/assets/index-mr0Sw0G-.css +0 -36
  354. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-1C9qvD3x.js +0 -1
  355. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-H_KJGVAj.js +0 -8
@@ -29,33 +29,31 @@ import {
29
29
  listAgentToolNames,
30
30
  markWorkflowRunPersistenceActive,
31
31
  narrowAgentTools,
32
- parseSkillContent,
33
32
  persistInlineWorkflowScript,
33
+ readBundledReference,
34
34
  readWorkflowSourceRef,
35
35
  readWorkflowStepId,
36
36
  rebuildToolRegistryOnOverride,
37
37
  resolveAgentExecutionBackend,
38
+ resolveBundledReferenceSurface,
38
39
  resolveExternalWorktreeDir,
39
40
  resolveSavedWorkflowScript,
40
41
  resolveWorkflowSizeCaps,
41
42
  resolveWorkflowSizeGuidelineSetting,
42
43
  toModelVisibleSubagentResult,
43
44
  tryWithWorkflowTaskMutation
44
- } from "./chunk-DPEB6S2R.js";
45
+ } from "./chunk-5QEJKW7V.js";
45
46
  import {
46
47
  GitWorktreeService,
47
48
  generateAgentWorktreeSlug,
48
49
  writeWorktreeSessionMarker
49
- } from "./chunk-6N2PJAZG.js";
50
+ } from "./chunk-PX2ZOOGQ.js";
50
51
  import {
51
52
  parsePositiveIntegerEnv
52
53
  } from "./chunk-6PVPNMXU.js";
53
- import {
54
- resolveBundleDir
55
- } from "./chunk-ACHCT36C.js";
56
54
  import {
57
55
  SUBAGENT_PLAN_LIFECYCLE_TOOLS
58
- } from "./chunk-47C3HPMW.js";
56
+ } from "./chunk-O5YL6KSX.js";
59
57
  import {
60
58
  runWithAgentContext
61
59
  } from "./chunk-H7VK3YDS.js";
@@ -71,11 +69,11 @@ import {
71
69
  read,
72
70
  uiTelemetryService,
73
71
  writeLine
74
- } from "./chunk-2VS5EEXU.js";
72
+ } from "./chunk-WFHS3WCK.js";
75
73
  import {
76
74
  REASONING_EFFORT_TIERS,
77
75
  normalizeReasoningEffort
78
- } from "./chunk-P5OXAI4R.js";
76
+ } from "./chunk-7ELTXG6G.js";
79
77
  import {
80
78
  SyntheticOutputTool
81
79
  } from "./chunk-OOQ3TL6D.js";
@@ -995,7 +993,7 @@ function terminalDispatchError(workflowAgentId, mode) {
995
993
  }
996
994
  __name(terminalDispatchError, "terminalDispatchError");
997
995
  async function runSingleDispatch(config, prompt, opts, attemptSignal, emitter, workflowAgentId, agentIdentity, onTokens, subagentBounds) {
998
- const { AgentHeadless, ContextState } = await import("./agent-headless-ZYDEB4YW.js");
996
+ const { AgentHeadless, ContextState } = await import("./agent-headless-KPCHNPFD.js");
999
997
  const ctx = new ContextState();
1000
998
  ctx.set("task_prompt", prompt);
1001
999
  debugLogger.debug(`[workflow] Dispatch ${workflowAgentId}`);
@@ -3690,89 +3688,15 @@ __name(extractErrorMessage2, "extractErrorMessage");
3690
3688
 
3691
3689
  // packages/core/src/skills/workflow-authoring-skill.ts
3692
3690
  init_esbuild_shims();
3693
- import { readFileSync } from "node:fs";
3694
- import * as path6 from "node:path";
3695
- var debugLogger8 = createDebugLogger("WORKFLOW_AUTHORING_SKILL");
3696
3691
  var WORKFLOW_AUTHORING_SKILL_NAME = "workflow-authoring";
3697
- var cachedReference;
3698
- function referencePath() {
3699
- return path6.join(
3700
- resolveBundleDir(import.meta.url),
3701
- "bundled",
3702
- WORKFLOW_AUTHORING_SKILL_NAME,
3703
- "SKILL.md"
3704
- );
3705
- }
3706
- __name(referencePath, "referencePath");
3707
3692
  function readWorkflowAuthoringReference() {
3708
- if (cachedReference !== void 0) return cachedReference;
3709
- try {
3710
- const filePath = referencePath();
3711
- const parsed = parseSkillContent(readFileSync(filePath, "utf8"), filePath);
3712
- cachedReference = { body: parsed.body, baseDir: path6.dirname(filePath) };
3713
- } catch (error) {
3714
- debugLogger8.warn(`cannot read the workflow-authoring reference: ${error}`);
3715
- cachedReference = null;
3716
- }
3717
- return cachedReference;
3693
+ return readBundledReference(WORKFLOW_AUTHORING_SKILL_NAME);
3718
3694
  }
3719
3695
  __name(readWorkflowAuthoringReference, "readWorkflowAuthoringReference");
3720
- function resolveWorkflowAuthoringRoute(config) {
3721
- try {
3722
- if (config.getDisabledSkillLevels?.()?.has("bundled")) return "withheld";
3723
- if (config.isSkillEnabled?.({
3724
- name: WORKFLOW_AUTHORING_SKILL_NAME,
3725
- level: "bundled"
3726
- }) === false) {
3727
- return "withheld";
3728
- }
3729
- if (!config.getSkillManager?.()) return "inline";
3730
- const registry = config.getToolRegistry?.();
3731
- const toolNames = registry?.getAllToolNames?.();
3732
- if (!Array.isArray(toolNames)) return "skill";
3733
- if (!toolNames.includes(ToolNames.SKILL)) return "inline";
3734
- if (isToolDeferredBehindToolSearch(config, ToolNames.SKILL)) {
3735
- return toolNames.includes(ToolNames.TOOL_SEARCH) && toolNames.includes(ToolNames.TOOL_CALL) ? "skill-via-tool-search" : "inline";
3736
- }
3737
- return "skill";
3738
- } catch (error) {
3739
- debugLogger8.warn(`cannot resolve the workflow-authoring route: ${error}`);
3740
- return "skill";
3741
- }
3742
- }
3743
- __name(resolveWorkflowAuthoringRoute, "resolveWorkflowAuthoringRoute");
3744
3696
  function resolveWorkflowAuthoringSurface(config) {
3745
- const route = resolveWorkflowAuthoringRoute(config);
3746
- switch (route) {
3747
- case "skill":
3748
- return "pointer";
3749
- case "skill-via-tool-search":
3750
- return "pointer-via-tool-search";
3751
- case "withheld":
3752
- return "withheld";
3753
- case "inline":
3754
- return readWorkflowAuthoringReference() ? "inline" : "pointer";
3755
- default: {
3756
- const unhandled = route;
3757
- return unhandled;
3758
- }
3759
- }
3697
+ return resolveBundledReferenceSurface(config, WORKFLOW_AUTHORING_SKILL_NAME);
3760
3698
  }
3761
3699
  __name(resolveWorkflowAuthoringSurface, "resolveWorkflowAuthoringSurface");
3762
- function isToolDeferredBehindToolSearch(config, name) {
3763
- if (!config.getToolRegistry?.()?.isPermissionDeferred?.(name)) return false;
3764
- return !config.getVisibleTools?.()?.has(name);
3765
- }
3766
- __name(isToolDeferredBehindToolSearch, "isToolDeferredBehindToolSearch");
3767
- function isToolHiddenBehindToolSearch(config, name) {
3768
- if (!isToolDeferredBehindToolSearch(config, name)) return false;
3769
- return !config.getToolRegistry?.()?.isDeferredToolRevealed?.(name);
3770
- }
3771
- __name(isToolHiddenBehindToolSearch, "isToolHiddenBehindToolSearch");
3772
- function toolSearchBridgeSentence(toolDisplayName) {
3773
- return `If the ${toolDisplayName} tool is not in your tool list, review its schema with \`tool_search\` and then invoke it with \`tool_call\`.`;
3774
- }
3775
- __name(toolSearchBridgeSentence, "toolSearchBridgeSentence");
3776
3700
 
3777
3701
  export {
3778
3702
  MAX_TOKENS_PER_WORKFLOW_ENV,
@@ -3802,9 +3726,7 @@ export {
3802
3726
  WorkflowRunner,
3803
3727
  WORKFLOW_AUTHORING_SKILL_NAME,
3804
3728
  readWorkflowAuthoringReference,
3805
- resolveWorkflowAuthoringSurface,
3806
- isToolHiddenBehindToolSearch,
3807
- toolSearchBridgeSentence
3729
+ resolveWorkflowAuthoringSurface
3808
3730
  };
3809
3731
  /**
3810
3732
  * @license
@@ -3,13 +3,14 @@
3
3
  import {
4
4
  getPlugin,
5
5
  supportedTypes
6
- } from "./chunk-VPALWDQL.js";
6
+ } from "./chunk-VUIH3BQL.js";
7
7
  import {
8
8
  resolveChannelCwd
9
- } from "./chunk-VGLXXHTF.js";
9
+ } from "./chunk-5BLOZPTW.js";
10
10
  import {
11
- parseChannelOutputMode
12
- } from "./chunk-YWZOEHBT.js";
11
+ parseChannelOutputMode,
12
+ resolvePrivatePolicy
13
+ } from "./chunk-DE2WI7RU.js";
13
14
  import {
14
15
  isInternalSecretEnvVar
15
16
  } from "./chunk-5ZPFMX67.js";
@@ -27,6 +28,11 @@ import {
27
28
  init_esbuild_shims();
28
29
  var ENV_VAR_NAME_PATTERN = /^[A-Z_][A-Z0-9_]*$/;
29
30
  var CHANNEL_APPROVAL_MODES = new Set(APPROVAL_MODES);
31
+ var GROUP_SENDER_POLICIES = /* @__PURE__ */ new Set(["open", "allowlist"]);
32
+ var MOVED_GROUP_SPEAKER_KEYS = {
33
+ groupSenderPolicy: 'groups["*"].senders',
34
+ allowedGroupUsers: 'groups["*"].allowedUsers'
35
+ };
30
36
  function assertNotInternalSecret(envName, reference) {
31
37
  if (isInternalSecretEnvVar(envName)) {
32
38
  throw new Error(
@@ -141,6 +147,69 @@ function parseObjectStringFields(channelName, rawConfig, key, fields) {
141
147
  return Object.keys(result).length > 0 ? result : void 0;
142
148
  }
143
149
  __name(parseObjectStringFields, "parseObjectStringFields");
150
+ function parseMessageRoutingConfig(name, rawConfig) {
151
+ const value = rawConfig["messageRoutes"];
152
+ let messageRoutes;
153
+ if (value !== void 0) {
154
+ if (value === null || typeof value !== "object" || Array.isArray(value)) {
155
+ throw new Error(
156
+ `Channel "${name}" field "messageRoutes" must be an object.`
157
+ );
158
+ }
159
+ messageRoutes = {};
160
+ for (const [rawPrefix, instructions] of Object.entries(value)) {
161
+ const prefix = rawPrefix.trim();
162
+ if (!prefix) {
163
+ throw new Error(
164
+ `Channel "${name}" field "messageRoutes" contains an empty prefix.`
165
+ );
166
+ }
167
+ if (["__proto__", "constructor", "prototype"].includes(prefix)) {
168
+ throw new Error(
169
+ `Channel "${name}" field "messageRoutes" contains a reserved prefix.`
170
+ );
171
+ }
172
+ if (typeof instructions !== "string") {
173
+ throw new Error(
174
+ `Channel "${name}" field "messageRoutes.${prefix}" must be a string.`
175
+ );
176
+ }
177
+ if (Object.hasOwn(messageRoutes, prefix)) {
178
+ throw new Error(
179
+ `Channel "${name}" field "messageRoutes" contains duplicate prefix "${prefix}".`
180
+ );
181
+ }
182
+ messageRoutes[prefix] = instructions.trim();
183
+ }
184
+ if (Object.keys(messageRoutes).length === 0) {
185
+ throw new Error(
186
+ `Channel "${name}" field "messageRoutes" must not be empty.`
187
+ );
188
+ }
189
+ if (rawConfig["multiSession"] === true) {
190
+ throw new Error(
191
+ `Channel "${name}" cannot use "messageRoutes" with "multiSession".`
192
+ );
193
+ }
194
+ }
195
+ const rawDefault = rawConfig["defaultMessageRoute"];
196
+ let defaultMessageRoute;
197
+ if (rawDefault !== void 0) {
198
+ if (typeof rawDefault !== "string" || !rawDefault.trim()) {
199
+ throw new Error(
200
+ `Channel "${name}" field "defaultMessageRoute" must be a non-empty string.`
201
+ );
202
+ }
203
+ defaultMessageRoute = rawDefault.trim();
204
+ if (!Object.hasOwn(messageRoutes ?? {}, defaultMessageRoute)) {
205
+ throw new Error(
206
+ `Channel "${name}" field "defaultMessageRoute" must name a configured message route.`
207
+ );
208
+ }
209
+ }
210
+ return { messageRoutes, defaultMessageRoute };
211
+ }
212
+ __name(parseMessageRoutingConfig, "parseMessageRoutingConfig");
144
213
  function parseMemoryScopeConfig(channelName, rawConfig) {
145
214
  const parsed = parseObjectStringFields(
146
215
  channelName,
@@ -317,6 +386,46 @@ function parseApprovalModeConfig(channelName, rawConfig) {
317
386
  return approvalMode;
318
387
  }
319
388
  __name(parseApprovalModeConfig, "parseApprovalModeConfig");
389
+ function parseUserIdList(channelName, field, value) {
390
+ if (value === void 0 || value === null) {
391
+ return void 0;
392
+ }
393
+ if (!Array.isArray(value) || value.some((item) => typeof item !== "string")) {
394
+ throw new Error(
395
+ `Channel "${channelName}" field "${field}" must be an array of user IDs.`
396
+ );
397
+ }
398
+ return value;
399
+ }
400
+ __name(parseUserIdList, "parseUserIdList");
401
+ function parseGroups(channelName, rawConfig) {
402
+ for (const [key, newHome] of Object.entries(MOVED_GROUP_SPEAKER_KEYS)) {
403
+ if (rawConfig[key] !== void 0) {
404
+ throw new Error(
405
+ `Channel "${channelName}" field "${key}" moved to ${newHome}.`
406
+ );
407
+ }
408
+ }
409
+ const groups = rawConfig["groups"] || {};
410
+ for (const [groupId, group] of Object.entries(groups)) {
411
+ if (typeof group !== "object" || group === null) continue;
412
+ const senders = group["senders"];
413
+ if (senders !== void 0 && (typeof senders !== "string" || !GROUP_SENDER_POLICIES.has(senders))) {
414
+ throw new Error(
415
+ `Channel "${channelName}" field "groups.${groupId}.senders" must be one of: ${[
416
+ ...GROUP_SENDER_POLICIES
417
+ ].join(", ")}.`
418
+ );
419
+ }
420
+ parseUserIdList(
421
+ channelName,
422
+ `groups.${groupId}.allowedUsers`,
423
+ group["allowedUsers"]
424
+ );
425
+ }
426
+ return groups;
427
+ }
428
+ __name(parseGroups, "parseGroups");
320
429
  function parseChannelWebhookConfig(channelName, rawConfig, env = process.env) {
321
430
  return parseWebhookConfig(channelName, rawConfig, env);
322
431
  }
@@ -406,7 +515,7 @@ async function parseChannelConfig(name, rawConfig, defaultCwd = process.cwd(), o
406
515
  "multiSession",
407
516
  rawConfig["multiSession"]
408
517
  );
409
- const groups = rawConfig["groups"] || {};
518
+ const groups = parseGroups(name, rawConfig);
410
519
  const webhooks = parseWebhookConfig(name, rawConfig);
411
520
  const multiSessionError = multiSessionCompatibilityError(name, {
412
521
  multiSession,
@@ -422,6 +531,7 @@ async function parseChannelConfig(name, rawConfig, defaultCwd = process.cwd(), o
422
531
  token,
423
532
  clientId,
424
533
  clientSecret,
534
+ privatePolicy: resolvePrivatePolicy(rawConfig),
425
535
  senderPolicy: rawConfig["senderPolicy"] || "allowlist",
426
536
  allowedUsers: rawConfig["allowedUsers"] || [],
427
537
  sessionScope: configuredSessionScope,
@@ -429,6 +539,7 @@ async function parseChannelConfig(name, rawConfig, defaultCwd = process.cwd(), o
429
539
  cwd: resolveChannelCwd(rawConfig["cwd"], defaultCwd),
430
540
  approvalMode: parseApprovalModeConfig(name, rawConfig),
431
541
  instructions: rawConfig["instructions"],
542
+ ...parseMessageRoutingConfig(name, rawConfig),
432
543
  identity: parseObjectStringFields(name, rawConfig, "identity", [
433
544
  "id",
434
545
  "displayName",
@@ -439,6 +550,7 @@ async function parseChannelConfig(name, rawConfig, defaultCwd = process.cwd(), o
439
550
  outputMode,
440
551
  groupPolicy: rawConfig["groupPolicy"] || "disabled",
441
552
  dmPolicy: rawConfig["dmPolicy"] || "open",
553
+ operators: parseUserIdList(name, "operators", rawConfig["operators"]),
442
554
  groups,
443
555
  webhooks
444
556
  };
@@ -448,6 +560,7 @@ __name(parseChannelConfig, "parseChannelConfig");
448
560
  export {
449
561
  resolveEnvVars,
450
562
  multiSessionCompatibilityError,
563
+ parseMessageRoutingConfig,
451
564
  parseChannelWebhookConfig,
452
565
  parseChannelWebhookConfigLenient,
453
566
  parseChannelConfig
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  resolvePath
5
- } from "./chunk-YWZOEHBT.js";
5
+ } from "./chunk-DE2WI7RU.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -1,20 +1,21 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
3
  import {
4
- multiSessionCompatibilityError
5
- } from "./chunk-MVC4XLNM.js";
4
+ multiSessionCompatibilityError,
5
+ parseMessageRoutingConfig
6
+ } from "./chunk-53IRNMPU.js";
6
7
  import {
7
8
  UNSAFE_OBJECT_KEYS,
8
9
  getPlugin
9
- } from "./chunk-VPALWDQL.js";
10
+ } from "./chunk-VUIH3BQL.js";
10
11
  import {
11
12
  CHANNEL_OUTPUT_MODE_FIELD,
12
13
  parseChannelOutputMode
13
- } from "./chunk-YWZOEHBT.js";
14
+ } from "./chunk-DE2WI7RU.js";
14
15
  import {
15
16
  loadSettings,
16
17
  saveSettings
17
- } from "./chunk-LYEINKJD.js";
18
+ } from "./chunk-BCW42UYG.js";
18
19
  import {
19
20
  init_esbuild_shims
20
21
  } from "./chunk-5O2XNYP6.js";
@@ -101,13 +102,22 @@ function assertStringRecord(key, value, allowedKeys) {
101
102
  }
102
103
  __name(assertStringRecord, "assertStringRecord");
103
104
  function assertSharedField(key, value, previous) {
105
+ if (key === "messageRoutes" || key === "defaultMessageRoute") {
106
+ return true;
107
+ }
104
108
  if (key === "multiSession") {
105
109
  if (typeof value !== "boolean") {
106
110
  throw invalidConfig(`Channel field "${key}" must be a boolean.`);
107
111
  }
108
112
  return true;
109
113
  }
114
+ if (key === "groupSenderPolicy" || key === "allowedGroupUsers") {
115
+ throw invalidConfig(
116
+ `Channel field "${key}" moved to groups["*"].${key === "groupSenderPolicy" ? "senders" : "allowedUsers"}.`
117
+ );
118
+ }
110
119
  const enumValues = {
120
+ privatePolicy: /* @__PURE__ */ new Set(["disabled", "allowlist", "pairing", "open"]),
111
121
  senderPolicy: /* @__PURE__ */ new Set(["allowlist", "pairing", "open"]),
112
122
  dmPolicy: /* @__PURE__ */ new Set(["open", "disabled"]),
113
123
  groupPolicy: /* @__PURE__ */ new Set(["disabled", "allowlist", "pairing", "open"]),
@@ -126,7 +136,7 @@ function assertSharedField(key, value, previous) {
126
136
  }
127
137
  return true;
128
138
  }
129
- if (key === "allowedUsers") {
139
+ if (key === "allowedUsers" || key === "operators") {
130
140
  if (!Array.isArray(value) || value.some((item) => typeof item !== "string")) {
131
141
  throw invalidConfig(`Channel field "${key}" must be a string array.`);
132
142
  }
@@ -149,10 +159,12 @@ function assertSharedField(key, value, previous) {
149
159
  const known = [
150
160
  "requireMention",
151
161
  "dispatchMode",
152
- "groupHistoryLimit"
162
+ "groupHistoryLimit",
163
+ "senders",
164
+ "allowedUsers"
153
165
  ].includes(nestedKey);
154
- const valid = nestedKey === "requireMention" && typeof nestedValue === "boolean" || nestedKey === "dispatchMode" && typeof nestedValue === "string" && ["collect", "steer", "followup"].includes(nestedValue) || nestedKey === "groupHistoryLimit" && typeof nestedValue === "number" && Number.isFinite(nestedValue);
155
- if (known && !valid && !(Object.hasOwn(previousGroup, nestedKey) && isDeepStrictEqual(previousGroup[nestedKey], nestedValue) && !containsUnsafeObjectKey(nestedValue))) {
166
+ const valid = nestedKey === "requireMention" && typeof nestedValue === "boolean" || nestedKey === "dispatchMode" && typeof nestedValue === "string" && ["collect", "steer", "followup"].includes(nestedValue) || nestedKey === "groupHistoryLimit" && typeof nestedValue === "number" && Number.isFinite(nestedValue) || nestedKey === "senders" && typeof nestedValue === "string" && ["open", "allowlist"].includes(nestedValue) || nestedKey === "allowedUsers" && Array.isArray(nestedValue) && nestedValue.every((item) => typeof item === "string");
167
+ if (known && !valid && !(nestedKey !== "senders" && Object.hasOwn(previousGroup, nestedKey) && isDeepStrictEqual(previousGroup[nestedKey], nestedValue) && !containsUnsafeObjectKey(nestedValue))) {
156
168
  throw invalidConfig(
157
169
  `Channel field "${key}.${groupId}.${nestedKey}" is invalid.`
158
170
  );
@@ -458,6 +470,17 @@ var WorkspaceChannelSettingsStore = class {
458
470
  webhooks: nextConfig["webhooks"]
459
471
  });
460
472
  if (multiSessionError) throw invalidConfig(multiSessionError);
473
+ try {
474
+ const routing = parseMessageRoutingConfig(name, nextConfig);
475
+ if (routing.messageRoutes !== void 0)
476
+ nextConfig["messageRoutes"] = routing.messageRoutes;
477
+ if (routing.defaultMessageRoute !== void 0)
478
+ nextConfig["defaultMessageRoute"] = routing.defaultMessageRoute;
479
+ } catch (error) {
480
+ throw invalidConfig(
481
+ error instanceof Error ? error.message : String(error)
482
+ );
483
+ }
461
484
  let crossFieldError;
462
485
  try {
463
486
  crossFieldError = plugin.management.validateConfig?.(nextConfig);