@qwen-code/qwen-code 0.21.13 → 0.21.14

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-67IDQILY.js} +24 -23
  9. package/chunks/{StandaloneSessionPicker-KEGXNUG6.js → StandaloneSessionPicker-G4QJIRMH.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-BS3YYO33.js} +626 -141
  12. package/chunks/{agent-DPTOZFEM.js → agent-EHHEXKWN.js} +22 -21
  13. package/chunks/{agent-headless-GJCQMURW.js → agent-headless-UT2ZF76T.js} +22 -21
  14. package/chunks/{anthropicContentGenerator-G7BVXTKN.js → anthropicContentGenerator-M7XRJMSK.js} +3 -3
  15. package/chunks/{bridge-YNQBAA4Z.js → bridge-WQ4IL2RF.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-ZDFXY7VY.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-4PKCUT7F.js → chunk-2A6VQJYK.js} +6 -6
  22. package/chunks/chunk-2C6HJMG3.js +757 -0
  23. package/chunks/chunk-3PWCMXIR.js +9169 -0
  24. package/chunks/{chunk-BVJS5BSP.js → chunk-3PWNVF6N.js} +1 -1
  25. package/chunks/{chunk-X26JYGTD.js → chunk-3SL2P3WX.js} +1 -1
  26. package/chunks/{chunk-ZYBBISBY.js → chunk-3YRVPHT3.js} +15 -12
  27. package/chunks/{chunk-AS5IN4GK.js → chunk-47L5MLB5.js} +3 -3
  28. package/chunks/{chunk-3U3VAL47.js → chunk-4SR45OM4.js} +1 -1
  29. package/chunks/{chunk-OMLJNPBE.js → chunk-4ZMS3JCR.js} +1 -0
  30. package/chunks/{chunk-UKMR3CKV.js → chunk-4ZS3BLER.js} +3 -3
  31. package/chunks/{chunk-5EYKMUUY.js → chunk-544KT7X4.js} +1 -1
  32. package/chunks/{chunk-TUGSVUJB.js → chunk-55VKMB7X.js} +5 -5
  33. package/chunks/{chunk-GO7STP6N.js → chunk-5IJSFWQO.js} +4 -4
  34. package/chunks/{chunk-A4QRWUDE.js → chunk-5IYS4WWR.js} +1 -1
  35. package/chunks/{chunk-TS6625XH.js → chunk-5MK45KZ3.js} +9 -5
  36. package/chunks/{chunk-MLPXSYXR.js → chunk-6BJSYAML.js} +25 -16
  37. package/chunks/{chunk-V57QC6WW.js → chunk-6LAPGPVA.js} +5 -3
  38. package/chunks/{chunk-NNHNLJ2X.js → chunk-6RDZLBSJ.js} +240 -42
  39. package/chunks/{chunk-ZZO74WKW.js → chunk-73JUK3ZW.js} +24 -18
  40. package/chunks/{chunk-N5YPT6PH.js → chunk-7VNHO4MN.js} +7 -4
  41. package/chunks/{chunk-OVZPVYZB.js → chunk-AKBOLMUF.js} +95 -17
  42. package/chunks/{chunk-NHDR76JX.js → chunk-BQWNIPTE.js} +1 -1
  43. package/chunks/{chunk-IWPYVAO2.js → chunk-C3T6M24E.js} +2 -2
  44. package/chunks/{chunk-NM5V5OVW.js → chunk-CEXU72GE.js} +2 -2
  45. package/chunks/{chunk-AA2BEKV3.js → chunk-CH5OFRV7.js} +1 -1
  46. package/chunks/{chunk-MS7GNABG.js → chunk-CXJHQVEK.js} +8 -0
  47. package/chunks/{chunk-E23IPNGS.js → chunk-CZK622ZK.js} +12 -3
  48. package/chunks/{chunk-K5IDV3PC.js → chunk-D34RDOLP.js} +12 -2
  49. package/chunks/{chunk-OXCMMLED.js → chunk-DGJ7O55J.js} +1 -1
  50. package/chunks/{chunk-DGK6P3BQ.js → chunk-DHUPMYMC.js} +10 -10
  51. package/chunks/{chunk-O4D7SPJN.js → chunk-DRAONPUW.js} +3 -3
  52. package/chunks/{chunk-P7MPQI75.js → chunk-DVR7XKO5.js} +1 -1
  53. package/chunks/{chunk-PP4FUZNV.js → chunk-E5WQMF3K.js} +2 -2
  54. package/chunks/{chunk-4NFY2S7N.js → chunk-E7REAOTN.js} +15 -0
  55. package/chunks/{chunk-ZYYTZUI2.js → chunk-EOPBFLA5.js} +3 -3
  56. package/chunks/{chunk-OOQUVWIG.js → chunk-FN6M5WUL.js} +4 -4
  57. package/chunks/{chunk-DGZEMW5R.js → chunk-FS5NGKWC.js} +1 -1
  58. package/chunks/{chunk-MRMJCLIY.js → chunk-G6KI5UOJ.js} +2 -2
  59. package/chunks/{chunk-6ORZ2EDC.js → chunk-H3SHU2XU.js} +1 -1
  60. package/chunks/{chunk-GMIEIY3Y.js → chunk-I3N2Z25H.js} +1 -1
  61. package/chunks/{chunk-BHILXOC3.js → chunk-J63PKMYA.js} +1 -1
  62. package/chunks/{chunk-KD5BOPLP.js → chunk-J6YS7Z25.js} +98 -4
  63. package/chunks/chunk-K2Y45XXS.js +3887 -0
  64. package/chunks/{chunk-RVOJ2FBP.js → chunk-KC4WMLZO.js} +1486 -10574
  65. package/chunks/{chunk-LJQAUZMR.js → chunk-L3T4V5GZ.js} +925 -92
  66. package/chunks/{chunk-M6NDLY2T.js → chunk-LD5VIJ7S.js} +1 -1
  67. package/chunks/{chunk-RIAABG2K.js → chunk-LSO6EL4Y.js} +1 -1
  68. package/chunks/{chunk-XHRY7BXD.js → chunk-MDIGJH5X.js} +3 -3
  69. package/chunks/{chunk-MC4TLKEI.js → chunk-MVHJZ3FZ.js} +2 -2
  70. package/chunks/{chunk-YEYY7TEP.js → chunk-N6RSOOWJ.js} +5 -5
  71. package/chunks/{chunk-OD2WU5QY.js → chunk-NRPXRNN4.js} +1 -1
  72. package/chunks/{chunk-CKSJECTU.js → chunk-NVRMCWTP.js} +8 -4
  73. package/chunks/{chunk-Y3YCSWG5.js → chunk-OBJYN4MX.js} +1 -1
  74. package/chunks/{chunk-GGDBMYGZ.js → chunk-OEYAK5O6.js} +3 -3
  75. package/chunks/{chunk-6YKYPVDV.js → chunk-OEZCXK7Y.js} +3 -3
  76. package/chunks/{chunk-4S5337WV.js → chunk-OFTPCOGR.js} +4312 -2704
  77. package/chunks/{chunk-7UXUJ5T3.js → chunk-OJB5FYVK.js} +1 -1
  78. package/chunks/{chunk-WFSTRPRO.js → chunk-OJOP26ET.js} +1 -1
  79. package/chunks/{chunk-TIGA2IVL.js → chunk-OO4FKHLO.js} +2 -2
  80. package/chunks/{chunk-BZ263IKX.js → chunk-OVY67CYC.js} +1 -1
  81. package/chunks/{chunk-PQ36L4F5.js → chunk-P3AA6S7O.js} +1 -1
  82. package/chunks/{chunk-CU6GJD55.js → chunk-PCETXVVV.js} +1 -1
  83. package/chunks/{chunk-AFSG32D5.js → chunk-PHN4R2ZV.js} +1 -1
  84. package/chunks/{chunk-QF2NHSPB.js → chunk-PJSD2FOR.js} +233 -184
  85. package/chunks/{chunk-NEFOOD54.js → chunk-QAVTWAHL.js} +2 -2
  86. package/chunks/{chunk-AW4TRXOC.js → chunk-QEHH23OM.js} +1 -1
  87. package/chunks/{chunk-CZBYX5MY.js → chunk-QEJZUXSK.js} +1 -1
  88. package/chunks/{chunk-XIT3GURH.js → chunk-QRVHGEVY.js} +3 -3
  89. package/chunks/{chunk-M732YJPW.js → chunk-RXHBTKMG.js} +2 -2
  90. package/chunks/{chunk-JOOFMXGF.js → chunk-S7N3HUIB.js} +5 -5
  91. package/chunks/{chunk-76J3IJ3M.js → chunk-SCZU65AI.js} +3 -3
  92. package/chunks/{chunk-QIH2HAEN.js → chunk-SFJMFZT5.js} +1 -1
  93. package/chunks/{chunk-JNDY2MDR.js → chunk-SFTKAX4O.js} +1 -1
  94. package/chunks/{chunk-WSH6GRKG.js → chunk-SLILKYV2.js} +2 -2
  95. package/chunks/{chunk-DXIBNLBZ.js → chunk-SNQZZ765.js} +1 -1
  96. package/chunks/{chunk-V26NVGAU.js → chunk-TSMPNGBC.js} +8 -3
  97. package/chunks/{chunk-QV5YN5YD.js → chunk-U657UZJN.js} +5 -5
  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-OY5RNSV4.js → chunk-V6WEMZPD.js} +3 -3
  101. package/chunks/{chunk-A267JX7H.js → chunk-VFP5YOHJ.js} +6 -6
  102. package/chunks/{chunk-HUTNYWBG.js → chunk-VTOLYFWM.js} +18 -10
  103. package/chunks/{chunk-EZ5RP345.js → chunk-W7EYJGN7.js} +40 -9
  104. package/chunks/{chunk-BKPPWD33.js → chunk-WAO53ZQF.js} +1 -1
  105. package/chunks/{chunk-S5DWMTHO.js → chunk-WP4WIUOJ.js} +2 -0
  106. package/chunks/{chunk-25EYDK42.js → chunk-WPVUOVYX.js} +1 -1
  107. package/chunks/{chunk-AXN7UPYQ.js → chunk-WSSH2BNO.js} +1 -1
  108. package/chunks/chunk-WZAD4ZNJ.js +59 -0
  109. package/chunks/{chunk-JUEPY766.js → chunk-XITLNXLX.js} +2 -2
  110. package/chunks/{chunk-EL5SXY3T.js → chunk-XT4RKHVE.js} +2 -2
  111. package/chunks/{chunk-IGGGG5CX.js → chunk-XYRBK56E.js} +4635 -1655
  112. package/chunks/{chunk-UZPM4XHR.js → chunk-Y4RVDOXV.js} +29 -8
  113. package/chunks/{chunk-QRCNA3SR.js → chunk-Y7QY6DKW.js} +49 -69
  114. package/chunks/{chunk-FDGGZIYW.js → chunk-YECDICIO.js} +2 -2
  115. package/chunks/{chunk-46UV252V.js → chunk-YHC2EYYG.js} +35 -38
  116. package/chunks/{chunk-U3VNBPUO.js → chunk-YHXQK4SR.js} +2 -2
  117. package/chunks/{chunk-A4MFR4C5.js → chunk-ZIGC3MUS.js} +2 -4
  118. package/chunks/{computer-use-77C5FHMW.js → computer-use-YORZJQE5.js} +22 -21
  119. package/chunks/{config-utils-IVHRSXWI.js → config-utils-NJQA5YLJ.js} +2 -2
  120. package/chunks/{contextCommand-PJ77GBWL.js → contextCommand-PACHGIF4.js} +24 -23
  121. package/chunks/{core-runtime-7VMIKUTG.js → core-runtime-6HD5DSPX.js} +22 -21
  122. package/chunks/{create-sub-session-2L5MQRN4.js → create-sub-session-IQFIPUQA.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-6P27GKSU.js} +24 -23
  128. package/chunks/{daemon-status-provider-ZDOYJCU6.js → daemon-status-provider-SXS66ZIR.js} +31 -30
  129. package/chunks/{daemon-trust-policy-E67OYUK2.js → daemon-trust-policy-5QJHAS3N.js} +29 -28
  130. package/chunks/{daemon-trust-policy-monitor-RYYGCQ3J.js → daemon-trust-policy-monitor-JA2WZRZ3.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-R2VWOVG3.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-PQEEOFKJ.js} +22 -21
  136. package/chunks/{edit-I4LQFAEC.js → edit-RASZHTU2.js} +25 -23
  137. package/chunks/{en-X6YV7GME.js → en-MD3GP5YL.js} +8 -0
  138. package/chunks/{enter-worktree-YNPOJSRH.js → enter-worktree-CH5OMHJE.js} +22 -21
  139. package/chunks/{enterPlanMode-XCPK62ER.js → enterPlanMode-AQKR3CAH.js} +22 -21
  140. package/chunks/{environment-S7CTIHMX.js → environment-7QRYIEBA.js} +25 -24
  141. package/chunks/{errors-7HB2AIDS.js → errors-P2LL5452.js} +24 -23
  142. package/chunks/{exit-worktree-AIIY7SR6.js → exit-worktree-WUDL26CY.js} +22 -21
  143. package/chunks/{exitPlanMode-R4JY7V2O.js → exitPlanMode-JM75SAUI.js} +22 -21
  144. package/chunks/{fast-path-NDJV3ZFJ.js → fast-path-KVNSOHVA.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-ADMD2EOS.js} +62 -61
  148. package/chunks/{geminiContentGenerator-SQ5XBPZ7.js → geminiContentGenerator-CS3M7SOS.js} +3 -3
  149. package/chunks/{glob-J4RUJAHX.js → glob-WIJOGYVV.js} +22 -21
  150. package/chunks/{goal-tools-VHTNVOKK.js → goal-tools-K5OHOJ6B.js} +1 -1
  151. package/chunks/{grep-VJWPLFOT.js → grep-CIFRQBR7.js} +22 -21
  152. package/chunks/{handleAutoUpdate-POCX2MNB.js → handleAutoUpdate-KJ4SN7DM.js} +26 -25
  153. package/chunks/{i18n-RM5YOICI.js → i18n-36SZUO4C.js} +23 -22
  154. package/chunks/{image-gen-EXECB5XM.js → image-gen-R4B5VUYB.js} +2 -2
  155. package/chunks/{initializer-Z2AFGBNR.js → initializer-CW5YCAOL.js} +29 -28
  156. package/chunks/{installationInfo-4I5FXNMH.js → installationInfo-NMQIOUGY.js} +23 -22
  157. package/chunks/{ja-QHT4EQTO.js → ja-UM5B2HMD.js} +8 -0
  158. package/chunks/{list-ZMBFIGZA.js → list-HHGT3S4P.js} +32 -31
  159. package/chunks/{loadedSettingsAdapter-T6TV4YJ7.js → loadedSettingsAdapter-SJ2MJF35.js} +29 -28
  160. package/chunks/{loggingContentGenerator-WF4ZOJEZ.js → loggingContentGenerator-GR2QQ2C5.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-ADQJHKTO.js} +23 -22
  163. package/chunks/{mcp-6UNYX4HG.js → mcp-QW3OTL5W.js} +29 -28
  164. package/chunks/{monitor-EE2UYMGE.js → monitor-RJKPVERH.js} +22 -21
  165. package/chunks/{nonInteractiveCli-WAY237O4.js → nonInteractiveCli-MROMHSTL.js} +59 -57
  166. package/chunks/{notebook-edit-NTDY4QDU.js → notebook-edit-2ENWDBZO.js} +26 -24
  167. package/chunks/{openaiContentGenerator-YNFVJMRJ.js → openaiContentGenerator-Z3GPWJU4.js} +12 -11
  168. package/chunks/{pidfile-4XSFLYBZ.js → pidfile-5G42YSTP.js} +22 -21
  169. package/chunks/{processUtils-WDA2MJFD.js → processUtils-ZDMXYKQY.js} +2 -2
  170. package/chunks/{pt-VL3I5RNY.js → pt-5BMJ3XYH.js} +8 -0
  171. package/chunks/{qwenContentGenerator-434M7QKY.js → qwenContentGenerator-NLEMBZVU.js} +25 -24
  172. package/chunks/{qwenOAuth2-GMYZOO6A.js → qwenOAuth2-EBV52DWJ.js} +3 -3
  173. package/chunks/{read-file-TAFBKMNI.js → read-file-5BYIF53O.js} +9 -7
  174. package/chunks/{record-artifact-SEYFJEJF.js → record-artifact-GLU3UWBV.js} +3 -1
  175. package/chunks/{resumeHistoryUtils-EVG3WYK2.js → resumeHistoryUtils-AFTBRS3G.js} +25 -24
  176. package/chunks/{ripGrep-WOEK2PXS.js → ripGrep-NN7AOLQY.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-UR3DYDAF.js} +49 -40
  179. package/chunks/{runtime-5MLLZ7DC.js → runtime-PR5RKGNH.js} +32 -31
  180. package/chunks/{scheduler-RPBJ63CH.js → scheduler-GPMLVKJM.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-E7V2JVA2.js} +29 -30
  185. package/chunks/{server-TC4A7AAZ.js → server-YXB3DBN7.js} +1267 -165
  186. package/chunks/{session-UBOFXVMN.js → session-DZEAUT7S.js} +60 -58
  187. package/chunks/{settings-D5644OM5.js → settings-ESZ3NWAP.js} +28 -27
  188. package/chunks/{shell-3PZULQQV.js → shell-JMSK5WIL.js} +22 -21
  189. package/chunks/{skill-PEVVXQ3L.js → skill-5K5CSUJV.js} +11 -9
  190. package/chunks/{skill-settings-J65JKKES.js → skill-settings-V64NIOTI.js} +28 -27
  191. package/chunks/{spawnChannel-IYGXRHSQ.js → spawnChannel-S63APBZZ.js} +24 -23
  192. package/chunks/{standalone-update-IFM53PE7.js → standalone-update-P42HDFXX.js} +24 -23
  193. package/chunks/{startInteractiveUI-3AVH7L6H.js → startInteractiveUI-LFBLFHJ4.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-EDNOUM2U.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-QRSNK2DX.js} +22 -21
  200. package/chunks/{terminal-image-renderer-G343P2RV.js → terminal-image-renderer-6J2NPL32.js} +22 -21
  201. package/chunks/{theme-manager-Z3RIT7DB.js → theme-manager-WJMLRBXS.js} +22 -21
  202. package/chunks/{todoWrite-U2R4NVF4.js → todoWrite-ATS62CAP.js} +1 -1
  203. package/chunks/{tool-search-5R2OE4C7.js → tool-search-MZ6WU7DM.js} +9 -7
  204. package/chunks/{total-session-admission-4KBHMQQ2.js → total-session-admission-DQVW2LIP.js} +26 -25
  205. package/chunks/{trustedFolders-LK6T4XC7.js → trustedFolders-QMH25GOX.js} +23 -22
  206. package/chunks/{update-relaunch-UBKROIC6.js → update-relaunch-EG75LLW5.js} +5 -5
  207. package/chunks/{updateCheck-W4Y2GFSD.js → updateCheck-MTZIVGT5.js} +25 -24
  208. package/chunks/{useAutoAcceptIndicator-C7BEICBF.js → useAutoAcceptIndicator-IGCW5EPO.js} +31 -30
  209. package/chunks/{validateNonInterActiveAuth-LTEI2TB6.js → validateNonInterActiveAuth-D5FPAB2C.js} +56 -54
  210. package/chunks/{version-G5A5DGVS.js → version-UOLDLLRB.js} +1 -1
  211. package/chunks/{web-fetch-RTEQTR5Z.js → web-fetch-QKKW6CWH.js} +11 -8
  212. package/chunks/{web-search-5OXHEZPV.js → web-search-JYRBZMCW.js} +2 -2
  213. package/chunks/{workflow-ISQJHPG2.js → workflow-SR7SEAU7.js} +139 -37
  214. package/chunks/{workspace-providers-status-2ZPZPUPZ.js → workspace-providers-status-OXGV4EFF.js} +32 -31
  215. package/chunks/{workspace-registration-store-CYNY6IP6.js → workspace-registration-store-V5EGKLBH.js} +1 -1
  216. package/chunks/{workspace-registry-34GTUUHB.js → workspace-registry-KJVIYTF5.js} +26 -25
  217. package/chunks/{workspace-service-XCDQLE2Y.js → workspace-service-6RLSGUB5.js} +33 -32
  218. package/chunks/{workspace-skills-status-RS4O7AIJ.js → workspace-skills-status-BHFEPDGH.js} +30 -29
  219. package/chunks/{workspace-trust-reconciler-AYGXC7A3.js → workspace-trust-reconciler-DB5ERSUN.js} +33 -32
  220. package/chunks/{write-file-EWXKVVXF.js → write-file-IUP4GTZ4.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-SRBDTIVA.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,17 +2,20 @@
2
2
  "use strict";
3
3
  import {
4
4
  functionResponsePartsToString
5
- } from "./chunk-NNHNLJ2X.js";
5
+ } from "./chunk-6RDZLBSJ.js";
6
6
  import {
7
+ observeHeadlessToolResultProjection,
8
+ observeHeadlessToolResultWire,
7
9
  projectJsonStringToByteBudget
8
- } from "./chunk-RLKC46YT.js";
10
+ } from "./chunk-K2Y45XXS.js";
9
11
  import {
10
- parseAndFormatApiError
11
- } from "./chunk-4S5337WV.js";
12
+ parseAndFormatApiError,
13
+ toolResultBoundaryArtifact
14
+ } from "./chunk-OFTPCOGR.js";
12
15
  import {
13
16
  formatVisionBridgeNoticeDisplay,
14
17
  isVisionBridgeNoticeDisplay
15
- } from "./chunk-RVOJ2FBP.js";
18
+ } from "./chunk-KC4WMLZO.js";
16
19
  import {
17
20
  init_esbuild_shims
18
21
  } from "./chunk-5O2XNYP6.js";
@@ -725,8 +728,10 @@ ${event.value}`, null);
725
728
  is_error: hasError
726
729
  };
727
730
  const content = toolResultContent(response);
731
+ let projectedContent;
728
732
  if (content !== void 0) {
729
- block.content = projectHeadlessToolResultContent(content);
733
+ projectedContent = projectHeadlessToolResultContent(content);
734
+ block.content = projectedContent;
730
735
  }
731
736
  const message = {
732
737
  type: "user",
@@ -738,6 +743,18 @@ ${event.value}`, null);
738
743
  content: [block]
739
744
  }
740
745
  };
746
+ if (content !== void 0 && projectedContent !== void 0) {
747
+ observeHeadlessToolResultProjection(
748
+ message,
749
+ content,
750
+ projectedContent,
751
+ request.callId,
752
+ response.boundaryArtifact ?? toolResultBoundaryArtifact(
753
+ response.persistedOutputFiles,
754
+ response.artifacts
755
+ )
756
+ );
757
+ }
741
758
  this.emitMessageImpl(message);
742
759
  }
743
760
  /**
@@ -1018,8 +1035,12 @@ var StreamJsonOutputAdapter = class extends BaseJsonOutputAdapter {
1018
1035
  if (typeof message === "object" && message !== null && "type" in message && message.type === "assistant") {
1019
1036
  this.updateLastAssistantMessage(message);
1020
1037
  }
1021
- this.outputStream.write(`${JSON.stringify(message)}
1022
- `);
1038
+ const frame = `${JSON.stringify(message)}
1039
+ `;
1040
+ if ("session_id" in message) {
1041
+ observeHeadlessToolResultWire(message, frame);
1042
+ }
1043
+ this.outputStream.write(frame);
1023
1044
  }
1024
1045
  /**
1025
1046
  * Control-plane messages (control_request / control_response) share the
@@ -27,11 +27,10 @@ import {
27
27
  } from "./chunk-3VUENPWF.js";
28
28
  import {
29
29
  loadSettings
30
- } from "./chunk-A267JX7H.js";
30
+ } from "./chunk-VFP5YOHJ.js";
31
31
  import {
32
- MCP_BUDGET_WARN_FRACTION,
33
- sleepInhibitor
34
- } from "./chunk-4S5337WV.js";
32
+ MCP_BUDGET_WARN_FRACTION
33
+ } from "./chunk-OFTPCOGR.js";
35
34
  import {
36
35
  parsePositiveIntegerEnv
37
36
  } from "./chunk-6PVPNMXU.js";
@@ -55,52 +54,48 @@ import {
55
54
 
56
55
  // packages/cli/src/commands/serve.ts
57
56
  init_esbuild_shims();
58
- import { randomBytes } from "node:crypto";
59
- import { networkInterfaces } from "node:os";
60
57
  function blockForever() {
61
58
  return new Promise(() => {
62
59
  });
63
60
  }
64
61
  __name(blockForever, "blockForever");
65
62
  var DEFAULT_SERVE_HOSTNAME = "127.0.0.1";
66
- function localControlUrls(baseUrl, token, interfaces = networkInterfaces()) {
67
- const urls = [];
68
- for (const [interfaceName, addresses] of Object.entries(interfaces).sort()) {
69
- for (const address of addresses ?? []) {
70
- if (address.family !== "IPv4" || address.internal) {
71
- continue;
72
- }
73
- const target = new URL(baseUrl);
74
- target.hostname = address.address;
75
- target.hash = `token=${encodeURIComponent(token)}`;
76
- urls.push({ interfaceName, url: target.toString() });
63
+ async function startLocalControl(handle, address) {
64
+ await handle.runtimeReady;
65
+ if (!handle.webShellMounted) {
66
+ throw new Error("Local Control requires the Web Shell.");
67
+ }
68
+ const service = handle.getLocalControl();
69
+ if (!service) {
70
+ throw new Error("Local Control is unavailable on this daemon.");
71
+ }
72
+ let status;
73
+ try {
74
+ status = await service.enable(address ? { address } : {});
75
+ } catch (err) {
76
+ if (err instanceof Error && err.code === "ambiguous_lan_interface") {
77
+ throw new Error(`${err.message}. Pass --local-control-address <ip>.`);
77
78
  }
79
+ throw err;
78
80
  }
79
- return urls;
80
- }
81
- __name(localControlUrls, "localControlUrls");
82
- async function showLocalControlPairing(handle, urls) {
83
- await handle.runtimeReady;
84
- if (!handle.webShellMounted || !handle.resolvedToken) {
85
- throw new Error("Local Control requires the authenticated Web Shell.");
81
+ if (!status.url) {
82
+ throw new Error("Local Control did not return a pairing URL.");
86
83
  }
87
84
  const { default: qrcode } = await import("./main-PXAUXNF2.js");
88
85
  qrcode.setErrorLevel("Q");
89
86
  writeStdoutLine(
90
- "\nLocal Control is on. Scan a QR code from the same network:"
87
+ "\nLocal Control is on. Scan this QR code from the same network:"
91
88
  );
92
- for (const entry of urls) {
93
- writeStdoutLine(`
94
- ${entry.interfaceName}: ${entry.url}`);
95
- qrcode.generate(entry.url, { small: true }, (code) => {
96
- writeStdoutLine(code.trimEnd());
97
- });
98
- }
89
+ writeStdoutLine(`
90
+ ${status.interfaceName}: ${status.url}`);
91
+ qrcode.generate(status.url, { small: true }, (code) => {
92
+ writeStdoutLine(code.trimEnd());
93
+ });
99
94
  writeStdoutLine(
100
- "\nKeep this terminal open. Restart after changing networks. Sleep inhibition is best effort. Traffic is encrypted only when --tls-cert and --tls-key are set. Press Ctrl+C to turn Local Control off."
95
+ "\nKeep this terminal open. " + (status.sleepInhibited ? "Sleep is inhibited while this session is active. " : "Sleep inhibition is unavailable here, so the host may sleep. ") + (status.encrypted ? "Traffic is encrypted." : "Traffic is unencrypted \u2014 use it only on a network you trust.") + " Turn Local Control off from the Web Shell Settings card, or press Ctrl+C to exit the daemon."
101
96
  );
102
97
  }
103
- __name(showLocalControlPairing, "showLocalControlPairing");
98
+ __name(startLocalControl, "startLocalControl");
104
99
  async function maybeOpenWebShellBrowser(handle, open) {
105
100
  if (!open || !handle.webShellMounted || !shouldLaunchBrowser()) return;
106
101
  try {
@@ -205,22 +200,24 @@ var serveCommand = {
205
200
  }).option("local-control", {
206
201
  type: "boolean",
207
202
  default: false,
208
- description: "Share the Web Shell on the local IPv4 network with a fresh token, terminal QR code, and best-effort sleep inhibition. Press Ctrl+C to turn it off."
203
+ description: "Share the Web Shell on the local IPv4 network with its own revocable pairing token, terminal QR code, and best-effort sleep inhibition. Ctrl+C turns it off by ending the whole daemon; the Web Shell Settings card turns it off while the daemon keeps running."
204
+ }).option("local-control-address", {
205
+ type: "string",
206
+ description: "Which local IPv4 address to share when the host is on more than one network. Only needed if --local-control reports an ambiguous choice."
209
207
  }).check((argv) => {
210
- if (argv["local-control"] === true && argv.token !== void 0) {
211
- throw new Error("Local Control generates its own token.");
212
- }
213
- if (argv["local-control"] === true && argv["allow-origin"] !== void 0) {
214
- throw new Error("Local Control manages its browser origins.");
215
- }
216
208
  if (argv["local-control"] === true && argv["web"] === false) {
217
209
  throw new Error("Local Control requires the Web Shell.");
218
210
  }
219
- if (argv["local-control"] === true && (!Number.isInteger(argv["port"]) || argv["port"] < 1 || argv["port"] > 65535)) {
220
- throw new Error("Local Control requires a fixed port.");
221
- }
222
211
  if (argv["local-control"] === true && argv.hostname !== DEFAULT_SERVE_HOSTNAME) {
223
- throw new Error("Local Control manages its hostname.");
212
+ throw new Error(
213
+ `Local Control requires --hostname ${DEFAULT_SERVE_HOSTNAME}.`
214
+ );
215
+ }
216
+ if (argv["local-control"] !== true && argv["local-control-address"] !== void 0) {
217
+ throw new Error("--local-control-address requires --local-control.");
218
+ }
219
+ if (argv["local-control-address"] === "") {
220
+ throw new Error("--local-control-address must not be empty.");
224
221
  }
225
222
  return true;
226
223
  }).option("event-ring-size", {
@@ -425,23 +422,12 @@ var serveCommand = {
425
422
  }
426
423
  const externalToolGuardToken = process.env[EXTERNAL_TOOL_GUARD_TOKEN_ENV] ?? "";
427
424
  delete process.env[EXTERNAL_TOOL_GUARD_TOKEN_ENV];
428
- const { runQwenServe } = await import("./run-qwen-serve-3QSGRXAN.js");
425
+ const { runQwenServe } = await import("./run-qwen-serve-UR3DYDAF.js");
429
426
  try {
430
- const localControlToken = argv["local-control"] ? randomBytes(32).toString("base64url") : void 0;
431
- const localControlPairing = localControlToken ? localControlUrls(
432
- `${argv["tls-cert"] ? "https" : "http"}://0.0.0.0:${argv.port}/`,
433
- localControlToken
434
- ) : [];
435
- if (argv["local-control"] && localControlPairing.length === 0) {
436
- throw new Error(
437
- "Local Control could not find a non-loopback IPv4 address."
438
- );
439
- }
440
427
  const handle = await runQwenServe({
441
428
  port: argv.port,
442
- strictPort: argv["local-control"],
443
- hostname: argv["local-control"] ? "0.0.0.0" : argv.hostname,
444
- token: localControlToken ?? argv.token,
429
+ hostname: argv.hostname,
430
+ token: argv.token,
445
431
  mode: "http-bridge",
446
432
  maxSessions: argv["max-sessions"],
447
433
  ...argv["max-total-sessions"] !== void 0 ? { maxTotalSessions: argv["max-total-sessions"] } : {},
@@ -464,13 +450,9 @@ var serveCommand = {
464
450
  ...memoryBudgetMb !== void 0 ? { memoryBudgetMb } : {},
465
451
  memoryPressureMode: argv["memory-pressure-mode"],
466
452
  childHeapMode: argv["child-heap-mode"],
467
- ...argv["local-control"] ? {
468
- allowOrigins: localControlPairing.map(({ url }) => new URL(url).origin).concat(
469
- new URL(
470
- `${argv["tls-cert"] ? "https" : "http"}://127.0.0.1:${argv.port}`
471
- ).origin
472
- )
473
- } : argv["allow-origin"] && argv["allow-origin"].length > 0 ? { allowOrigins: argv["allow-origin"] } : {},
453
+ // No Local Control special case: the service registers and removes the
454
+ // LAN origin itself while a session is live.
455
+ ...argv["allow-origin"] && argv["allow-origin"].length > 0 ? { allowOrigins: argv["allow-origin"] } : {},
474
456
  ...argv["prompt-deadline-ms"] !== void 0 ? { promptDeadlineMs: argv["prompt-deadline-ms"] } : {},
475
457
  ...argv["writer-idle-timeout-ms"] !== void 0 ? { writerIdleTimeoutMs: argv["writer-idle-timeout-ms"] } : {},
476
458
  ...argv["channel-idle-timeout-ms"] !== void 0 ? { channelIdleTimeoutMs: argv["channel-idle-timeout-ms"] } : {},
@@ -503,8 +485,7 @@ var serveCommand = {
503
485
  });
504
486
  if (argv["local-control"]) {
505
487
  try {
506
- await showLocalControlPairing(handle, localControlPairing);
507
- sleepInhibitor.acquire("Qwen Code Local Control is active");
488
+ await startLocalControl(handle, argv["local-control-address"]);
508
489
  } catch (err) {
509
490
  await handle.close().catch(() => void 0);
510
491
  throw err;
@@ -522,7 +503,6 @@ var serveCommand = {
522
503
  };
523
504
 
524
505
  export {
525
- localControlUrls,
526
506
  maybeOpenWebShellBrowser,
527
507
  serveCommand
528
508
  };
@@ -82,7 +82,7 @@ async function atomicWriteFile(filePath, data, options, _testFs) {
82
82
  });
83
83
  let existingStat;
84
84
  try {
85
- existingStat = await fs.stat(targetPath);
85
+ existingStat = options?.noFollow ? await fs.lstat(targetPath) : await fs.stat(targetPath);
86
86
  } catch (err) {
87
87
  if (!isNodeError(err) || err.code !== "ENOENT") {
88
88
  throw err;
@@ -90,7 +90,7 @@ async function atomicWriteFile(filePath, data, options, _testFs) {
90
90
  }
91
91
  let existingMode;
92
92
  if (!options?.forceMode || options?.mode === void 0) {
93
- existingMode = existingStat !== void 0 ? existingStat.mode & 4095 : void 0;
93
+ existingMode = existingStat !== void 0 && (!options?.noFollow || existingStat.isFile()) ? existingStat.mode & 4095 : void 0;
94
94
  }
95
95
  const desiredMode = existingMode ?? options?.mode;
96
96
  const writeOptions = {};
@@ -72,54 +72,51 @@ var TextTokenizer = class {
72
72
  }
73
73
  };
74
74
 
75
- // packages/core/src/utils/tool-name-utils.ts
75
+ // packages/core/src/utils/request-tokenizer/supportedImageFormats.ts
76
76
  init_esbuild_shims();
77
- var MAX_TOOL_NAME_LENGTH = 63;
78
- var PROVIDER_SAFE_TOOL_NAME = /^[A-Za-z][A-Za-z0-9_-]*$/;
79
- function normalizeToolNameForProvider(name) {
80
- if (name.length <= MAX_TOOL_NAME_LENGTH && PROVIDER_SAFE_TOOL_NAME.test(name)) {
81
- return name;
82
- }
83
- const normalized = sanitizeToolNameForProvider(name);
84
- const suffix = `_${stableToolNameHash(name)}`;
85
- return `${normalized.slice(0, MAX_TOOL_NAME_LENGTH - suffix.length)}${suffix}`;
86
- }
87
- __name(normalizeToolNameForProvider, "normalizeToolNameForProvider");
88
- function sanitizeToolNameForProvider(name) {
89
- const sanitized = name.replace(/[^A-Za-z0-9_-]/g, "_");
90
- return /^[A-Za-z]/.test(sanitized) ? sanitized : `tool_${sanitized}`;
77
+ var SUPPORTED_IMAGE_MIME_TYPES = [
78
+ "image/bmp",
79
+ "image/gif",
80
+ "image/jpeg",
81
+ "image/jpg",
82
+ // Alternative MIME type for JPEG
83
+ "image/png",
84
+ "image/tiff",
85
+ "image/webp",
86
+ "image/heic"
87
+ ];
88
+ var PIPELINE_IMAGE_MIME_TYPES = [
89
+ "image/gif",
90
+ "image/jpeg",
91
+ "image/jpg",
92
+ "image/png",
93
+ "image/webp"
94
+ ];
95
+ function isSupportedImageMimeType(mimeType) {
96
+ return SUPPORTED_IMAGE_MIME_TYPES.includes(
97
+ mimeType
98
+ );
91
99
  }
92
- __name(sanitizeToolNameForProvider, "sanitizeToolNameForProvider");
93
- function normalizeMcpToolName(name) {
94
- return name.startsWith("mcp__") ? normalizeToolNameForProvider(name) : name;
100
+ __name(isSupportedImageMimeType, "isSupportedImageMimeType");
101
+ function getSupportedImageFormatsString() {
102
+ return PIPELINE_IMAGE_MIME_TYPES.map(
103
+ (type) => type.replace("image/", "").toUpperCase()
104
+ ).join(", ");
95
105
  }
96
- __name(normalizeMcpToolName, "normalizeMcpToolName");
97
- function generateLegacyMcpToolName(name) {
98
- let legacyName = name.replace(/[^A-Za-z0-9_.-]/g, "_");
99
- if (legacyName.length > MAX_TOOL_NAME_LENGTH) {
100
- legacyName = legacyName.slice(0, 28) + "___" + legacyName.slice(-32);
101
- }
102
- return legacyName;
103
- }
104
- __name(generateLegacyMcpToolName, "generateLegacyMcpToolName");
105
- function stableToolNameHash(name) {
106
- let hash = 2166136261;
107
- for (let index = 0; index < name.length; index += 1) {
108
- hash = Math.imul(hash ^ name.charCodeAt(index), 16777619);
109
- }
110
- return (hash >>> 0).toString(36).padStart(7, "0");
106
+ __name(getSupportedImageFormatsString, "getSupportedImageFormatsString");
107
+ function getUnsupportedImageFormatWarning() {
108
+ return `Only the following image formats are supported: ${getSupportedImageFormatsString()}. Other formats may not work as expected.`;
111
109
  }
112
- __name(stableToolNameHash, "stableToolNameHash");
110
+ __name(getUnsupportedImageFormatWarning, "getUnsupportedImageFormatWarning");
113
111
 
114
112
  export {
115
113
  TOKEN_ESTIMATE_UNITS_PER_TOKEN,
116
114
  estimateTextTokens,
117
115
  estimateTextTokenUnits,
118
116
  TextTokenizer,
119
- normalizeToolNameForProvider,
120
- sanitizeToolNameForProvider,
121
- normalizeMcpToolName,
122
- generateLegacyMcpToolName
117
+ PIPELINE_IMAGE_MIME_TYPES,
118
+ isSupportedImageMimeType,
119
+ getUnsupportedImageFormatWarning
123
120
  };
124
121
  /**
125
122
  * @license
@@ -5,10 +5,10 @@ import {
5
5
  } from "./chunk-2AUM35J5.js";
6
6
  import {
7
7
  getNpmCliPath
8
- } from "./chunk-BKPPWD33.js";
8
+ } from "./chunk-WAO53ZQF.js";
9
9
  import {
10
10
  t
11
- } from "./chunk-HUTNYWBG.js";
11
+ } from "./chunk-VTOLYFWM.js";
12
12
  import {
13
13
  getPackageJson
14
14
  } from "./chunk-WZMH7II3.js";
@@ -1,11 +1,9 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
3
  import {
4
+ TextTokenizer,
4
5
  isSupportedImageMimeType
5
- } from "./chunk-MPHPFVKK.js";
6
- import {
7
- TextTokenizer
8
- } from "./chunk-46UV252V.js";
6
+ } from "./chunk-YHC2EYYG.js";
9
7
  import {
10
8
  createDebugLogger
11
9
  } from "./chunk-BUQDLC2G.js";
@@ -4,34 +4,34 @@ import {
4
4
  Client,
5
5
  So,
6
6
  StdioClientTransport
7
- } from "./chunk-4S5337WV.js";
7
+ } from "./chunk-OFTPCOGR.js";
8
8
  import "./chunk-GOFAQQZA.js";
9
9
  import "./chunk-5M6IDOMF.js";
10
10
  import "./chunk-TWPJO254.js";
11
11
  import "./chunk-CQ35AJ4Z.js";
12
- import "./chunk-DGZEMW5R.js";
13
- import "./chunk-WSH6GRKG.js";
14
- import "./chunk-CKSJECTU.js";
15
- import "./chunk-OVZPVYZB.js";
12
+ import "./chunk-FS5NGKWC.js";
13
+ import "./chunk-SLILKYV2.js";
14
+ import "./chunk-NVRMCWTP.js";
15
+ import "./chunk-AKBOLMUF.js";
16
16
  import "./chunk-6PVPNMXU.js";
17
- import "./chunk-5EYKMUUY.js";
17
+ import "./chunk-544KT7X4.js";
18
18
  import "./chunk-IRH27ZC2.js";
19
19
  import "./chunk-QHWCP53L.js";
20
- import "./chunk-Y3YCSWG5.js";
21
- import "./chunk-UPDOZBWO.js";
20
+ import "./chunk-OBJYN4MX.js";
21
+ import "./chunk-2C6HJMG3.js";
22
22
  import "./chunk-O6GEWCJA.js";
23
23
  import "./chunk-T26EAKDL.js";
24
24
  import "./chunk-ZPJWUGCS.js";
25
25
  import "./chunk-CPBF7KYF.js";
26
26
  import "./chunk-RWDNJBWN.js";
27
- import "./chunk-25EYDK42.js";
27
+ import "./chunk-WPVUOVYX.js";
28
28
  import "./chunk-MIPFDQAF.js";
29
29
  import "./chunk-MLXTMF7H.js";
30
30
  import "./chunk-KV27IEHM.js";
31
31
  import "./chunk-E3DYKPYZ.js";
32
- import "./chunk-OMLJNPBE.js";
33
- import "./chunk-OXCMMLED.js";
34
- import "./chunk-TIGA2IVL.js";
32
+ import "./chunk-4ZMS3JCR.js";
33
+ import "./chunk-DGJ7O55J.js";
34
+ import "./chunk-OO4FKHLO.js";
35
35
  import "./chunk-SAH4BD2J.js";
36
36
  import "./chunk-XLLKYULU.js";
37
37
  import "./chunk-PT4I7NBA.js";
@@ -41,7 +41,7 @@ import "./chunk-SG7ZP5PG.js";
41
41
  import "./chunk-K623ENWT.js";
42
42
  import "./chunk-AQ37AY7B.js";
43
43
  import "./chunk-KBXKR5R2.js";
44
- import "./chunk-GMIEIY3Y.js";
44
+ import "./chunk-I3N2Z25H.js";
45
45
  import "./chunk-NAVJD2PQ.js";
46
46
  import "./chunk-ROIYNTHJ.js";
47
47
  import "./chunk-2B2BF7P7.js";
@@ -49,14 +49,14 @@ import "./chunk-P3QQPMQA.js";
49
49
  import "./chunk-YZHRN3CF.js";
50
50
  import "./chunk-FAAUPSY2.js";
51
51
  import "./chunk-KM73TBQ4.js";
52
- import "./chunk-MPHPFVKK.js";
53
52
  import "./chunk-AXMWHKXA.js";
54
53
  import "./chunk-GLCZKT5V.js";
55
54
  import "./chunk-DJ2GSRLV.js";
56
55
  import "./chunk-QFJ5JHQR.js";
57
- import "./chunk-RVOJ2FBP.js";
56
+ import "./chunk-KC4WMLZO.js";
58
57
  import "./chunk-YRLW2MSX.js";
59
58
  import "./chunk-VGC4I5JJ.js";
59
+ import "./chunk-3PWCMXIR.js";
60
60
  import "./chunk-CHHABXPE.js";
61
61
  import "./chunk-MA2HEDVP.js";
62
62
  import "./chunk-XUJNK7Y6.js";
@@ -64,18 +64,19 @@ import {
64
64
  BaseDeclarativeTool,
65
65
  BaseToolInvocation
66
66
  } from "./chunk-6HY6IF3Z.js";
67
- import "./chunk-4PKCUT7F.js";
67
+ import "./chunk-2A6VQJYK.js";
68
68
  import "./chunk-F6WFNA7U.js";
69
- import "./chunk-46UV252V.js";
69
+ import "./chunk-WZAD4ZNJ.js";
70
70
  import "./chunk-FPGTNKCP.js";
71
+ import "./chunk-YHC2EYYG.js";
71
72
  import "./chunk-CPHEPGAO.js";
72
- import "./chunk-P7MPQI75.js";
73
- import "./chunk-FDGGZIYW.js";
74
- import "./chunk-EL5SXY3T.js";
73
+ import "./chunk-DVR7XKO5.js";
74
+ import "./chunk-YECDICIO.js";
75
+ import "./chunk-XT4RKHVE.js";
75
76
  import {
76
77
  safeJsonStringify
77
78
  } from "./chunk-HHJLM3WQ.js";
78
- import "./chunk-K5IDV3PC.js";
79
+ import "./chunk-D34RDOLP.js";
79
80
  import "./chunk-BUQDLC2G.js";
80
81
  import "./chunk-VOQXFAY5.js";
81
82
  import "./chunk-75DOP5OR.js";
@@ -5,9 +5,9 @@ import {
5
5
  parseChannelWebhookConfig,
6
6
  parseChannelWebhookConfigLenient,
7
7
  resolveEnvVars
8
- } from "./chunk-OD2WU5QY.js";
8
+ } from "./chunk-NRPXRNN4.js";
9
9
  import "./chunk-45NQKMYB.js";
10
- import "./chunk-A4QRWUDE.js";
10
+ import "./chunk-5IYS4WWR.js";
11
11
  import {
12
12
  findCliEntryPath
13
13
  } from "./chunk-V6WHFGST.js";
@@ -4,39 +4,39 @@ import {
4
4
  collectContextData,
5
5
  contextCommand,
6
6
  formatContextUsageText
7
- } from "./chunk-N5YPT6PH.js";
7
+ } from "./chunk-7VNHO4MN.js";
8
8
  import "./chunk-4WGODMVR.js";
9
9
  import "./chunk-EKTCKZV5.js";
10
- import "./chunk-HUTNYWBG.js";
10
+ import "./chunk-VTOLYFWM.js";
11
11
  import "./chunk-5EJZE3FP.js";
12
- import "./chunk-4S5337WV.js";
12
+ import "./chunk-OFTPCOGR.js";
13
13
  import "./chunk-GOFAQQZA.js";
14
14
  import "./chunk-5M6IDOMF.js";
15
15
  import "./chunk-TWPJO254.js";
16
16
  import "./chunk-CQ35AJ4Z.js";
17
- import "./chunk-DGZEMW5R.js";
18
- import "./chunk-WSH6GRKG.js";
19
- import "./chunk-CKSJECTU.js";
20
- import "./chunk-OVZPVYZB.js";
17
+ import "./chunk-FS5NGKWC.js";
18
+ import "./chunk-SLILKYV2.js";
19
+ import "./chunk-NVRMCWTP.js";
20
+ import "./chunk-AKBOLMUF.js";
21
21
  import "./chunk-6PVPNMXU.js";
22
- import "./chunk-5EYKMUUY.js";
22
+ import "./chunk-544KT7X4.js";
23
23
  import "./chunk-IRH27ZC2.js";
24
24
  import "./chunk-QHWCP53L.js";
25
- import "./chunk-Y3YCSWG5.js";
26
- import "./chunk-UPDOZBWO.js";
25
+ import "./chunk-OBJYN4MX.js";
26
+ import "./chunk-2C6HJMG3.js";
27
27
  import "./chunk-O6GEWCJA.js";
28
28
  import "./chunk-T26EAKDL.js";
29
29
  import "./chunk-ZPJWUGCS.js";
30
30
  import "./chunk-CPBF7KYF.js";
31
31
  import "./chunk-RWDNJBWN.js";
32
- import "./chunk-25EYDK42.js";
32
+ import "./chunk-WPVUOVYX.js";
33
33
  import "./chunk-MIPFDQAF.js";
34
34
  import "./chunk-MLXTMF7H.js";
35
35
  import "./chunk-KV27IEHM.js";
36
36
  import "./chunk-E3DYKPYZ.js";
37
- import "./chunk-OMLJNPBE.js";
38
- import "./chunk-OXCMMLED.js";
39
- import "./chunk-TIGA2IVL.js";
37
+ import "./chunk-4ZMS3JCR.js";
38
+ import "./chunk-DGJ7O55J.js";
39
+ import "./chunk-OO4FKHLO.js";
40
40
  import "./chunk-SAH4BD2J.js";
41
41
  import "./chunk-XLLKYULU.js";
42
42
  import "./chunk-PT4I7NBA.js";
@@ -46,7 +46,7 @@ import "./chunk-SG7ZP5PG.js";
46
46
  import "./chunk-K623ENWT.js";
47
47
  import "./chunk-AQ37AY7B.js";
48
48
  import "./chunk-KBXKR5R2.js";
49
- import "./chunk-GMIEIY3Y.js";
49
+ import "./chunk-I3N2Z25H.js";
50
50
  import "./chunk-NAVJD2PQ.js";
51
51
  import "./chunk-ROIYNTHJ.js";
52
52
  import "./chunk-2B2BF7P7.js";
@@ -54,28 +54,29 @@ import "./chunk-P3QQPMQA.js";
54
54
  import "./chunk-YZHRN3CF.js";
55
55
  import "./chunk-FAAUPSY2.js";
56
56
  import "./chunk-KM73TBQ4.js";
57
- import "./chunk-MPHPFVKK.js";
58
57
  import "./chunk-AXMWHKXA.js";
59
58
  import "./chunk-GLCZKT5V.js";
60
59
  import "./chunk-DJ2GSRLV.js";
61
60
  import "./chunk-QFJ5JHQR.js";
62
- import "./chunk-RVOJ2FBP.js";
61
+ import "./chunk-KC4WMLZO.js";
63
62
  import "./chunk-YRLW2MSX.js";
64
63
  import "./chunk-VGC4I5JJ.js";
64
+ import "./chunk-3PWCMXIR.js";
65
65
  import "./chunk-CHHABXPE.js";
66
66
  import "./chunk-MA2HEDVP.js";
67
67
  import "./chunk-XUJNK7Y6.js";
68
68
  import "./chunk-6HY6IF3Z.js";
69
- import "./chunk-4PKCUT7F.js";
69
+ import "./chunk-2A6VQJYK.js";
70
70
  import "./chunk-F6WFNA7U.js";
71
- import "./chunk-46UV252V.js";
71
+ import "./chunk-WZAD4ZNJ.js";
72
72
  import "./chunk-FPGTNKCP.js";
73
+ import "./chunk-YHC2EYYG.js";
73
74
  import "./chunk-CPHEPGAO.js";
74
- import "./chunk-P7MPQI75.js";
75
- import "./chunk-FDGGZIYW.js";
76
- import "./chunk-EL5SXY3T.js";
75
+ import "./chunk-DVR7XKO5.js";
76
+ import "./chunk-YECDICIO.js";
77
+ import "./chunk-XT4RKHVE.js";
77
78
  import "./chunk-HHJLM3WQ.js";
78
- import "./chunk-K5IDV3PC.js";
79
+ import "./chunk-D34RDOLP.js";
79
80
  import "./chunk-BUQDLC2G.js";
80
81
  import "./chunk-VOQXFAY5.js";
81
82
  import "./chunk-KGJGEEVR.js";