@qwen-code/qwen-code 0.22.2-preview.1 → 0.22.3

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 (437) hide show
  1. package/bundled/computer-use/SKILL.md +3 -3
  2. package/bundled/goal-draft/SKILL.md +109 -0
  3. package/bundled/qc-helper/docs/configuration/settings.md +37 -36
  4. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  5. package/bundled/qc-helper/docs/features/channels/dws.md +2 -0
  6. package/bundled/qc-helper/docs/features/channels/overview.md +34 -3
  7. package/bundled/qc-helper/docs/features/code-review.md +3 -3
  8. package/bundled/qc-helper/docs/features/commands.md +2 -1
  9. package/bundled/qc-helper/docs/features/computer-use.md +2 -2
  10. package/bundled/qc-helper/docs/features/goals.md +58 -0
  11. package/bundled/qc-helper/docs/features/headless.md +13 -11
  12. package/bundled/qc-helper/docs/features/status-line.md +3 -3
  13. package/bundled/qc-helper/docs/features/tool-use-summaries.md +1 -1
  14. package/bundled/qc-helper/docs/qwen-serve.md +1 -1
  15. package/bundled/review/SKILL.md +81 -31
  16. package/bundled/review/references/persistence.md +7 -3
  17. package/bundled/review/references/posting.md +10 -4
  18. package/chunks/MaxSizedBox-X42SXBJH.js +110 -0
  19. package/chunks/{StandaloneSessionPicker-5D2L22SF.js → StandaloneSessionPicker-2FJAOLGG.js} +81 -83
  20. package/chunks/{acpAgent-4DCKLA32.js → acpAgent-2ZMIJAFV.js} +1153 -357
  21. package/chunks/{agent-B4AFZL6H.js → agent-X5WX3L2I.js} +44 -46
  22. package/chunks/agent-headless-IZM25LJA.js +85 -0
  23. package/chunks/{anthropicContentGenerator-U76GTVB6.js → anthropicContentGenerator-YVTB6QX7.js} +46 -50
  24. package/chunks/{artifact-tool-XDJCZZCF.js → artifact-tool-XSMPHZBT.js} +11 -3
  25. package/chunks/{askUserQuestion-ZXXERLEV.js → askUserQuestion-4SWJY65V.js} +2 -2
  26. package/chunks/bridge-ME6QXZNA.js +119 -0
  27. package/chunks/{channel-management-service-HXXS3HOZ.js → channel-management-service-HQ6KDS7C.js} +6 -6
  28. package/chunks/channel-settings-store-PEOI7XCG.js +120 -0
  29. package/chunks/{channel-worker-group-EVDC2P4K.js → channel-worker-group-6NA6BBZV.js} +8 -7
  30. package/chunks/{channel-worker-manager-IJJZHGEI.js → channel-worker-manager-NEZ2J6RK.js} +10 -8
  31. package/chunks/{channel-worker-supervisor-YSKB5GVB.js → channel-worker-supervisor-FKU7DIHJ.js} +6 -5
  32. package/chunks/{chunk-7QGEJI7M.js → chunk-23RFD54N.js} +1 -1
  33. package/chunks/{chunk-JLU3FPQR.js → chunk-2HYKTO7V.js} +5 -5
  34. package/chunks/chunk-2LNNVAUV.js +1584 -0
  35. package/chunks/{chunk-FJAITR4L.js → chunk-2OBKDPZZ.js} +2 -2
  36. package/chunks/{chunk-JSY43GMI.js → chunk-2OUD5T67.js} +185 -174
  37. package/chunks/{chunk-LJP2BBMK.js → chunk-2SXSLSQE.js} +4 -4
  38. package/chunks/chunk-2TNL5KPM.js +49 -0
  39. package/chunks/{chunk-XMSMTU6H.js → chunk-2YOHKHYR.js} +4 -4
  40. package/chunks/{chunk-MCKJTBZN.js → chunk-36GSQ3MM.js} +2 -2
  41. package/chunks/chunk-36LGBEM6.js +130 -0
  42. package/chunks/{chunk-ZWKGZB2K.js → chunk-3JXM2CVW.js} +3 -3
  43. package/chunks/{chunk-X3XGCJ32.js → chunk-3SZC4VP4.js} +28 -111
  44. package/chunks/{chunk-ILPXSKGQ.js → chunk-3WK3QDNV.js} +2 -2
  45. package/chunks/{chunk-IKN3IUJP.js → chunk-3XKLXHGK.js} +17 -9
  46. package/chunks/{chunk-ZLTEQYNC.js → chunk-42IDLQWS.js} +26 -20
  47. package/chunks/chunk-4CMJKUND.js +95 -0
  48. package/chunks/{chunk-77TOMRBG.js → chunk-4K7KNVWH.js} +3 -3
  49. package/chunks/{chunk-SQPOJ4ZI.js → chunk-4NDLQAY2.js} +27 -270
  50. package/chunks/{chunk-V3GINY6K.js → chunk-4QHPPXK2.js} +16 -8
  51. package/chunks/{chunk-VBF4KZRQ.js → chunk-4TT3IVGA.js} +1 -1
  52. package/chunks/{chunk-IOGKXPL3.js → chunk-4VPCTGH6.js} +6 -6
  53. package/chunks/chunk-4VQBQLIZ.js +293 -0
  54. package/chunks/{chunk-UCSV2IZW.js → chunk-62GQFYID.js} +3 -3
  55. package/chunks/{chunk-SLEWBQWM.js → chunk-6DIGWMGT.js} +2 -2
  56. package/chunks/{chunk-BRVWYMKV.js → chunk-6MBXY6WM.js} +1 -1
  57. package/chunks/{chunk-PVBT5QPD.js → chunk-6PJOTWAN.js} +1 -1
  58. package/chunks/{chunk-WZ3QKPMQ.js → chunk-6X7EU5TI.js} +19 -31
  59. package/chunks/{chunk-KQYW2GB5.js → chunk-6ZPDLGHN.js} +6 -6
  60. package/chunks/{chunk-AKQA3WCH.js → chunk-734C6JGI.js} +723 -3399
  61. package/chunks/{chunk-F7M6ZFGU.js → chunk-73RM4POK.js} +8 -8
  62. package/chunks/{chunk-ELY4QVIB.js → chunk-7EQQR46F.js} +1 -1
  63. package/chunks/{chunk-KGJGEEVR.js → chunk-7FA2II6K.js} +10 -1
  64. package/chunks/chunk-7J6OTNGO.js +424 -0
  65. package/chunks/{chunk-LWLEPXKK.js → chunk-7LOELM2I.js} +19 -2
  66. package/chunks/{chunk-DIMEPKCW.js → chunk-7S226YTK.js} +1 -1
  67. package/chunks/{chunk-AWFZDYSD.js → chunk-7T52W4SW.js} +1 -1
  68. package/chunks/{chunk-3JKUX4PB.js → chunk-7VMIMAVB.js} +9 -9
  69. package/chunks/{chunk-2MHGD7EE.js → chunk-A3LWD5MK.js} +1 -1
  70. package/chunks/{chunk-E4I5MVBR.js → chunk-ABS25QER.js} +1 -1
  71. package/chunks/{chunk-TDQBVEPK.js → chunk-AIAOIFY4.js} +10 -8
  72. package/chunks/{chunk-NEZZHGEI.js → chunk-AYFA7MZV.js} +6 -6
  73. package/chunks/{chunk-FVDQ5E67.js → chunk-B466ZSHZ.js} +3 -3
  74. package/chunks/{chunk-6US7BF3G.js → chunk-B5PHIJGI.js} +183 -5
  75. package/chunks/{chunk-4TPAG3O7.js → chunk-BFPESSTR.js} +1 -1
  76. package/chunks/{chunk-WBT3STGU.js → chunk-BKWNKLZB.js} +20 -20
  77. package/chunks/{chunk-T45CL2NT.js → chunk-BOWFGCEU.js} +3 -3
  78. package/chunks/{chunk-IPQA4SR5.js → chunk-BWORX6FA.js} +1 -1
  79. package/chunks/{chunk-BKDAF7ES.js → chunk-BXDAPVQU.js} +2 -2
  80. package/chunks/{chunk-ZEADBZLO.js → chunk-C2X7KY45.js} +3 -3
  81. package/chunks/{chunk-PTQF7WRA.js → chunk-C3PEFRKD.js} +6 -6
  82. package/chunks/{chunk-7OBH4AM2.js → chunk-CAJTKR6W.js} +5 -5
  83. package/chunks/{chunk-2FN2HNTI.js → chunk-CFJY4DGX.js} +2 -2
  84. package/chunks/{chunk-SUE2ZMUH.js → chunk-CIZCL2MW.js} +49 -31
  85. package/chunks/{chunk-W2WRNJKX.js → chunk-CLWO3B77.js} +6 -6
  86. package/chunks/{chunk-U45D46O5.js → chunk-CMHFCLBU.js} +1 -1
  87. package/chunks/{chunk-LRKMQPMD.js → chunk-CQH5KTKC.js} +1 -1
  88. package/chunks/{chunk-JECO75XD.js → chunk-D5LUXLUH.js} +2 -2
  89. package/chunks/chunk-DJBQCO2E.js +842 -0
  90. package/chunks/{chunk-BQBUZDDH.js → chunk-DJECZIJX.js} +42 -42
  91. package/chunks/{chunk-GTUZ3R6I.js → chunk-DJEZ55D4.js} +351 -113
  92. package/chunks/{chunk-HPECDZ6X.js → chunk-DJPASAUV.js} +3866 -1077
  93. package/chunks/{chunk-VYWCFWI5.js → chunk-DMLVSW7L.js} +542 -654
  94. package/chunks/{chunk-EB4VDXNI.js → chunk-DYXFD5RO.js} +182 -3
  95. package/chunks/{chunk-ZKAZP2ZG.js → chunk-EB6QRGHM.js} +3 -3
  96. package/chunks/{chunk-UWICO5KN.js → chunk-EFWRMA2I.js} +3 -3
  97. package/chunks/{chunk-3UZCLCXR.js → chunk-EKSCLBBF.js} +3 -3
  98. package/chunks/{chunk-ALTQLFEG.js → chunk-EQSBPBZ3.js} +5 -194
  99. package/chunks/{chunk-624NHDGB.js → chunk-ERFDKH32.js} +11 -0
  100. package/chunks/{chunk-4K44OMLI.js → chunk-FROAFEFB.js} +3 -3
  101. package/chunks/{chunk-MZS7GEC7.js → chunk-FTF2YIZ5.js} +1 -1
  102. package/chunks/{chunk-Z7VOMGDC.js → chunk-FTJMWDND.js} +0 -24
  103. package/chunks/{chunk-ZJG323IA.js → chunk-G6FECKTJ.js} +7 -5
  104. package/chunks/{chunk-TMGAS5TO.js → chunk-GBJBJ4HX.js} +26 -4
  105. package/chunks/{chunk-UCQOSV6A.js → chunk-GPGU4S2N.js} +3 -3
  106. package/chunks/{chunk-BHTJAO36.js → chunk-GVIVASYK.js} +7 -7
  107. package/chunks/chunk-H72BQNM3.js +645 -0
  108. package/chunks/{chunk-Z4X5MTRT.js → chunk-HCOBAG2L.js} +2 -4
  109. package/chunks/{chunk-FCSWZAS3.js → chunk-HP5LR5HL.js} +5 -5
  110. package/chunks/{chunk-7JPW6IYH.js → chunk-HVC3PNVC.js} +1 -1
  111. package/chunks/{chunk-OI2DR6QB.js → chunk-I6LYRJPB.js} +3 -3
  112. package/chunks/{chunk-E55H6BZ7.js → chunk-ICURCKIU.js} +1335 -119
  113. package/chunks/{chunk-PAJGKZAA.js → chunk-ISKH4QX3.js} +14 -12
  114. package/chunks/{chunk-AYVIGUUK.js → chunk-JB4JIVTJ.js} +1 -1
  115. package/chunks/{chunk-FN5C6C7G.js → chunk-JHYH6PYQ.js} +192 -478
  116. package/chunks/{chunk-T6OODF2U.js → chunk-JWALNCLT.js} +1 -1
  117. package/chunks/{chunk-SKNVVYIJ.js → chunk-K5KXUXWC.js} +3 -3
  118. package/chunks/{chunk-XUX6O2ZT.js → chunk-KID24ZFN.js} +4 -1
  119. package/chunks/{chunk-I6DY753S.js → chunk-KJO2LBUK.js} +944 -18
  120. package/chunks/{chunk-5T4LWWNX.js → chunk-KYWTPLBJ.js} +18 -21
  121. package/chunks/{chunk-CZFQ62RM.js → chunk-LHBUKJG2.js} +4 -4
  122. package/chunks/{chunk-TOF4UZHH.js → chunk-LUEHOUHM.js} +3 -3
  123. package/chunks/{chunk-2YDYDDE2.js → chunk-M3QRM3DE.js} +3 -3
  124. package/chunks/{chunk-GNMJNDZE.js → chunk-M6FOJXW3.js} +1 -1
  125. package/chunks/{chunk-ZGWDHSUM.js → chunk-MF7HCQWZ.js} +4 -4
  126. package/chunks/{chunk-66GIFJ63.js → chunk-MK2GIB46.js} +1 -1
  127. package/chunks/{chunk-TFV4RXPU.js → chunk-MO3FC2WT.js} +1 -1
  128. package/chunks/{chunk-TR7G7XFQ.js → chunk-MPNBVAEU.js} +5 -5
  129. package/chunks/{chunk-K3LPAED5.js → chunk-MQM5PJML.js} +24 -4
  130. package/chunks/{chunk-3WBMPR3S.js → chunk-MSBO7X2W.js} +1 -1
  131. package/chunks/{chunk-5PA6UEYA.js → chunk-MZCJWS5Y.js} +1 -1
  132. package/chunks/{chunk-BGXZBI5B.js → chunk-N4X7G4J2.js} +2 -1
  133. package/chunks/{chunk-27ONXAFY.js → chunk-NIFYWDYN.js} +1 -1
  134. package/chunks/{chunk-AP7WZONS.js → chunk-NMOD2FXQ.js} +19 -9
  135. package/chunks/{chunk-IJVDHPKD.js → chunk-NU7RKEZR.js} +2 -2
  136. package/chunks/{chunk-5URK47RN.js → chunk-NV55WWD6.js} +11595 -10375
  137. package/chunks/{chunk-HABT2Z7R.js → chunk-OU5APVWO.js} +4 -4
  138. package/chunks/{chunk-QR4AHMGQ.js → chunk-P2G476QN.js} +13 -13
  139. package/chunks/{chunk-5SM2AK65.js → chunk-PADPMMYM.js} +5 -5
  140. package/chunks/{chunk-RRKNX553.js → chunk-PDQGMSZK.js} +1 -1
  141. package/chunks/{chunk-GTUKW3I6.js → chunk-PPKZ7JOE.js} +1 -1
  142. package/chunks/{chunk-SAH4BD2J.js → chunk-PQEISIKS.js} +67 -0
  143. package/chunks/{chunk-XIRDDFRS.js → chunk-PZ66FRIC.js} +2644 -2296
  144. package/chunks/{chunk-H3HZ4AWW.js → chunk-Q2MSPKIJ.js} +1 -1
  145. package/chunks/{chunk-WEGXPP5E.js → chunk-QFCDF5PL.js} +1 -1
  146. package/chunks/{chunk-OF2DPXUS.js → chunk-QYMAKPY5.js} +119 -24
  147. package/chunks/{chunk-JVPFTDBK.js → chunk-RFIDDFAL.js} +1 -1
  148. package/chunks/chunk-RKFGE7JH.js +93 -0
  149. package/chunks/{chunk-CPPYZHBN.js → chunk-RU7BK6B3.js} +1 -1
  150. package/chunks/chunk-SEONHUS3.js +275 -0
  151. package/chunks/{chunk-DEYPMJPD.js → chunk-SMPR7SPO.js} +1 -1
  152. package/chunks/chunk-SS4MRMKE.js +3525 -0
  153. package/chunks/{chunk-BPMVPWBT.js → chunk-SS5SDCD3.js} +6 -6
  154. package/chunks/{chunk-J3CBIEDS.js → chunk-ST5MDGH3.js} +32 -15
  155. package/chunks/{chunk-J5352S3S.js → chunk-ST5V3ZOC.js} +3 -3
  156. package/chunks/{chunk-7CWEZQ6T.js → chunk-STUJ7IMZ.js} +0 -77
  157. package/chunks/{chunk-4K7NQDCG.js → chunk-T4EFG2P5.js} +18 -9
  158. package/chunks/{chunk-TWSKM647.js → chunk-T7KMERIX.js} +1 -1
  159. package/chunks/{chunk-5CMWFBML.js → chunk-TEBDFQBZ.js} +1 -1
  160. package/chunks/{chunk-EC5BONC3.js → chunk-TPI7O7HR.js} +1 -1
  161. package/chunks/{chunk-T2CRBIDJ.js → chunk-TTX2JUE6.js} +1 -1
  162. package/chunks/{chunk-VOEMVOM4.js → chunk-TVC6HQ2U.js} +2 -2
  163. package/chunks/{chunk-WXDZZFH3.js → chunk-TZBSGJ6C.js} +6 -6
  164. package/chunks/chunk-U54AYGEC.js +337 -0
  165. package/chunks/{chunk-2NNTE2ED.js → chunk-UHQFIS7N.js} +15 -0
  166. package/chunks/{chunk-76WGY6LW.js → chunk-URE3QBBB.js} +3 -3
  167. package/chunks/{chunk-KOJ6MHD5.js → chunk-UTLCH2FK.js} +1 -1
  168. package/chunks/{chunk-7DPKPBOQ.js → chunk-V2NDP3I4.js} +2 -2
  169. package/chunks/{chunk-FJWICLG7.js → chunk-V4264FEG.js} +9 -9
  170. package/chunks/{chunk-XR7OIAQF.js → chunk-V5J4J5TP.js} +2 -2
  171. package/chunks/{chunk-7UJTY5V3.js → chunk-V7EESTJV.js} +1 -1
  172. package/chunks/{chunk-Z6L3C4VF.js → chunk-VBCPNIQD.js} +39 -39
  173. package/chunks/{chunk-ATLGYSYH.js → chunk-VGIFXISB.js} +4 -4
  174. package/chunks/{chunk-X2UOOG5V.js → chunk-VQUGEVGR.js} +1 -1
  175. package/chunks/{chunk-XJS54K4A.js → chunk-VTHREBQM.js} +2 -2
  176. package/chunks/{chunk-AA7VBRBG.js → chunk-W3JH33JE.js} +8 -8
  177. package/chunks/{chunk-FPH6TXD3.js → chunk-WAOIHTJS.js} +1 -1
  178. package/chunks/{chunk-CDUN63IN.js → chunk-WGY3AVGM.js} +3 -3
  179. package/chunks/{chunk-JLGFGPZJ.js → chunk-WNPDGUJO.js} +22 -3
  180. package/chunks/{chunk-O3BUXIPM.js → chunk-WXEA74YB.js} +3 -3
  181. package/chunks/{chunk-YRLW2MSX.js → chunk-XBVNNDPK.js} +11 -4
  182. package/chunks/{chunk-VL4YX3FH.js → chunk-XF63PKEN.js} +1 -1
  183. package/chunks/{chunk-R7G7GKOX.js → chunk-XHF7WQ6B.js} +3 -3
  184. package/chunks/{chunk-3FSBMAYD.js → chunk-XQFT3QUF.js} +1 -1
  185. package/chunks/{chunk-3D6PDLNJ.js → chunk-XSG6G3G6.js} +49 -32
  186. package/chunks/{chunk-5JCZ3UKB.js → chunk-Y5S7LBOZ.js} +44 -7
  187. package/chunks/{chunk-OLS3MAXQ.js → chunk-YLSQLSH7.js} +15 -9
  188. package/chunks/{chunk-2SERYG4T.js → chunk-YTDVNSUQ.js} +1 -1
  189. package/chunks/{chunk-KPF2K55D.js → chunk-ZEYFMJQA.js} +39 -8
  190. package/chunks/{chunk-OT4YKUUV.js → chunk-ZU4UDIWX.js} +2 -2
  191. package/chunks/chunk-ZWJDJ6RU.js +2597 -0
  192. package/chunks/{chunk-R3T33BG5.js → chunk-ZYMLPEZQ.js} +3 -3
  193. package/chunks/{chunk-DID6IRGC.js → chunk-ZZMSC3RG.js} +56 -39
  194. package/chunks/{chunk-L436XFLJ.js → chunk-ZZUKP7HV.js} +1 -1
  195. package/chunks/config-utils-R6M3TA34.js +113 -0
  196. package/chunks/contextCommand-ZCAP23J6.js +106 -0
  197. package/chunks/{core-runtime-CEJRHCRF.js → core-runtime-AXB6SK5D.js} +59 -61
  198. package/chunks/{create-sub-session-RVHSWVAP.js → create-sub-session-23ITIELI.js} +3 -3
  199. package/chunks/{create-sub-session-DFZVIG56.js → create-sub-session-4QNE64MR.js} +164 -85
  200. package/chunks/{cron-create-IJGVR5R2.js → cron-create-KJ4IY6PP.js} +57 -10
  201. package/chunks/{cron-delete-4N5BI6GL.js → cron-delete-MBLQCAYY.js} +4 -4
  202. package/chunks/{cron-list-2CATIPUX.js → cron-list-DWH2PQ47.js} +4 -4
  203. package/chunks/{daemon-NAYK4XXU.js → daemon-3GNHB3M2.js} +523 -8
  204. package/chunks/{daemon-git-worktree-guard-L6ZUFKF7.js → daemon-git-worktree-guard-IVAJJWYK.js} +56 -58
  205. package/chunks/daemon-status-provider-K3SJ5C2U.js +117 -0
  206. package/chunks/daemon-trust-policy-DOR3YG62.js +112 -0
  207. package/chunks/{daemon-trust-policy-monitor-2G3EKQEU.js → daemon-trust-policy-monitor-KGGROSIV.js} +64 -66
  208. package/chunks/deferred-core-runtime-WOYLUQQ7.js +114 -0
  209. package/chunks/{display-image-6KHQNEAE.js → display-image-BE7I6ZB6.js} +5 -5
  210. package/chunks/{dist-DJBNNPLN.js → dist-4WXLCBDR.js} +1 -1
  211. package/chunks/{dist-TJUDJTCB.js → dist-5VXFRTWU.js} +280 -48
  212. package/chunks/{dist-6H6RZ5H6.js → dist-6BPYWHVD.js} +89 -65
  213. package/chunks/{dist-ZBVOXSKF.js → dist-GFN5DCBX.js} +74 -65
  214. package/chunks/{dist-SATKXKUR.js → dist-HZNT6GQS.js} +1 -1
  215. package/chunks/{dist-FVJZSIO4.js → dist-LVZCXVPF.js} +72 -20
  216. package/chunks/{dist-7CKN54NL.js → dist-N6W6E753.js} +71 -64
  217. package/chunks/{dist-4Q7NTUNB.js → dist-NSV4NBPK.js} +31 -14
  218. package/chunks/{dist-UQUFZDIY.js → dist-SWQMYP2Q.js} +18 -16
  219. package/chunks/earlyInputCapture-OHBEVO4K.js +107 -0
  220. package/chunks/{edit-ZERGX3RV.js → edit-LEQLAGPZ.js} +45 -47
  221. package/chunks/{en-6MDBWMTG.js → en-YLXBXM4Z.js} +2 -1
  222. package/chunks/{enter-worktree-UOZ6ZTP7.js → enter-worktree-35QCAAFP.js} +7 -7
  223. package/chunks/{enterPlanMode-W2RP3P5B.js → enterPlanMode-ONQN3WHE.js} +47 -49
  224. package/chunks/{environment-ZBJ23YVR.js → environment-UANTR7A4.js} +60 -62
  225. package/chunks/errors-WAK6KFBC.js +113 -0
  226. package/chunks/{exit-worktree-G2QATUCV.js → exit-worktree-XQD6D543.js} +7 -7
  227. package/chunks/exitPlanMode-UEYBG6P5.js +83 -0
  228. package/chunks/{fast-path-4MWBCEUF.js → fast-path-WUL7UZ6H.js} +7 -7
  229. package/chunks/{fast-path-settings-XMFBYFUH.js → fast-path-settings-XH426LUU.js} +3 -3
  230. package/chunks/{glob-DKTNG32L.js → glob-Y54QUWDY.js} +44 -46
  231. package/chunks/{goal-tools-CNVXMSZD.js → goal-tools-PTD3MBA7.js} +10 -8
  232. package/chunks/{grep-3NLSS32D.js → grep-5GPICQBU.js} +6 -6
  233. package/chunks/handleAutoUpdate-FP3NWNSG.js +109 -0
  234. package/chunks/i18n-INIU5X7A.js +124 -0
  235. package/chunks/{image-gen-63NN2H5N.js → image-gen-J6FDGUZP.js} +8 -10
  236. package/chunks/initializer-TYODV6GE.js +113 -0
  237. package/chunks/installationInfo-AAPKYDSZ.js +107 -0
  238. package/chunks/{keychain-token-storage-3MGFRYGM.js → keychain-token-storage-37XPR34V.js} +2 -2
  239. package/chunks/list-TUODDN6J.js +116 -0
  240. package/chunks/{list-agents-EXRSHIDJ.js → list-agents-DI3YFTDT.js} +2 -2
  241. package/chunks/{gemini-X5GQHQYF.js → llm-NSAVK5V3.js} +117 -114
  242. package/chunks/{geminiContentGenerator-UDSWXZXL.js → llm-content-generator-AY2QKXHE.js} +29 -29
  243. package/chunks/loadedSettingsAdapter-KJCLZ3C4.js +110 -0
  244. package/chunks/{loggingContentGenerator-73C7TKDK.js → loggingContentGenerator-DSFQHXIF.js} +328 -37
  245. package/chunks/{loop-wakeup-XBPB2BRO.js → loop-wakeup-XJFONSQ7.js} +5 -5
  246. package/chunks/{ls-WFONAND2.js → ls-3VAT2J7A.js} +4 -4
  247. package/chunks/{lsp-DUKPDUXN.js → lsp-5W7IRUBH.js} +2 -2
  248. package/chunks/{managed-npm-update-H2KOLQZU.js → managed-npm-update-TSWENTK5.js} +57 -59
  249. package/chunks/mcp-MWSAPFOL.js +110 -0
  250. package/chunks/{monitor-TGCMNJJH.js → monitor-RW4GWJHB.js} +44 -46
  251. package/chunks/nonInteractiveCli-JXKL343Q.js +185 -0
  252. package/chunks/{notebook-edit-YEUNZYDX.js → notebook-edit-CQNYS5OR.js} +45 -47
  253. package/chunks/{open-with-auth-4UI3KHUR.js → open-with-auth-YN3QZHVM.js} +1 -1
  254. package/chunks/{openaiContentGenerator-J7LD4VSL.js → openaiContentGenerator-J6QIF7EX.js} +26 -28
  255. package/chunks/pidfile-QOIQZFT2.js +111 -0
  256. package/chunks/process-registry-OAEG6WGC.js +662 -0
  257. package/chunks/{processUtils-ZHFC7CSL.js → processUtils-GPHNANKZ.js} +2 -2
  258. package/chunks/prompt-terminal-ledger-FOMFTYOM.js +105 -0
  259. package/chunks/{qwenContentGenerator-YEWWK3JQ.js → qwenContentGenerator-WWDXPYQI.js} +49 -51
  260. package/chunks/{qwenOAuth2-JIYAWXTW.js → qwenOAuth2-OF5WRBQT.js} +7 -9
  261. package/chunks/{read-file-ZQI3WPVK.js → read-file-FQUQHC6N.js} +13 -13
  262. package/chunks/{read-mcp-resource-7A7NFSFL.js → read-mcp-resource-XD257PGJ.js} +2 -2
  263. package/chunks/{record-artifact-CPJ4IJSD.js → record-artifact-VW23GS4F.js} +4 -4
  264. package/chunks/{report-findings-VFM5DENC.js → report-findings-AO5VYFLR.js} +9 -5
  265. package/chunks/{request-shutdown-6IW46GD7.js → request-shutdown-BCLA3JV2.js} +7 -7
  266. package/chunks/resumeHistoryUtils-NSGF3UCB.js +118 -0
  267. package/chunks/ripGrep-4CAT6SKV.js +39 -0
  268. package/chunks/{run-qwen-serve-WHWU7NZ6.js → run-qwen-serve-5X6IDZER.js} +371 -357
  269. package/chunks/{runtime-E7BSPWQP.js → runtime-HK27GMPF.js} +69 -71
  270. package/chunks/scheduled-tasks-MN2ZZ5P6.js +127 -0
  271. package/chunks/{scheduler-TJPATFOM.js → scheduler-WD4MHMO5.js} +58 -60
  272. package/chunks/{sdk-exporters-http-XXSKBD2C.js → sdk-exporters-http-TTU2CHBU.js} +2 -2
  273. package/chunks/{sdk-impl-VPNBLV7I.js → sdk-impl-UUMVYMAL.js} +11 -5
  274. package/chunks/{send-message-OXZK6USO.js → send-message-AJ4OCUBV.js} +25 -9
  275. package/chunks/serve-2XCHPPGG.js +118 -0
  276. package/chunks/{server-AXCN7QBJ.js → server-GO2N5DH7.js} +6080 -4964
  277. package/chunks/{session-HO4US3AG.js → session-IFNHTUBT.js} +112 -112
  278. package/chunks/session-pr-refresh-I3UBWMVP.js +364 -0
  279. package/chunks/{settings-B2PFJJN4.js → settings-L6N54CU6.js} +63 -65
  280. package/chunks/{shell-7XMSANI3.js → shell-4Y5LLW6N.js} +44 -46
  281. package/chunks/{skill-NL3VH562.js → skill-YOWTRAKQ.js} +68 -24
  282. package/chunks/skill-settings-ZL4JY5UE.js +118 -0
  283. package/chunks/spawnChannel-ZST6XJVJ.js +112 -0
  284. package/chunks/standalone-update-THVU3OKY.js +118 -0
  285. package/chunks/{startInteractiveUI-G2XKSCQ7.js → startInteractiveUI-XDFSHBZD.js} +3076 -2475
  286. package/chunks/{stdioHelpers-7A2EE64Z.js → stdioHelpers-AY6XCDY2.js} +3 -1
  287. package/chunks/{syntheticOutput-5AJ444QT.js → syntheticOutput-ML43GEFN.js} +3 -3
  288. package/chunks/{task-create-TY7P6UHG.js → task-create-QN4LYRSE.js} +11 -11
  289. package/chunks/{task-list-BELMPA75.js → task-list-JPLGK45U.js} +5 -5
  290. package/chunks/{task-stop-U3S3KZG2.js → task-stop-CXEH5L2D.js} +2 -2
  291. package/chunks/{task-update-O4IGDPCK.js → task-update-IWEOJFV2.js} +11 -11
  292. package/chunks/{team-create-IYBUOORE.js → team-create-OOPXCDBA.js} +44 -46
  293. package/chunks/{team-delete-YWFXX77L.js → team-delete-RZVVSGCY.js} +5 -5
  294. package/chunks/{team-plan-approval-YKU57LBM.js → team-plan-approval-DSX5EWAT.js} +44 -46
  295. package/chunks/terminal-image-renderer-KS25G33E.js +114 -0
  296. package/chunks/theme-manager-YMZNG45F.js +102 -0
  297. package/chunks/{todoWrite-435EO2CS.js → todoWrite-WDJNQEMW.js} +43 -25
  298. package/chunks/{tool-search-4Q3KASIQ.js → tool-search-J5Q6U7DN.js} +22 -22
  299. package/chunks/total-session-admission-PVN64JVV.js +114 -0
  300. package/chunks/trustedFolders-FATSC4YI.js +122 -0
  301. package/chunks/{types-WYCFCEHR.js → types-HKLPXZB3.js} +1 -3
  302. package/chunks/{update-relaunch-4DC2KKFS.js → update-relaunch-SIKHLHVR.js} +6 -6
  303. package/chunks/updateCheck-D3YG2WCD.js +118 -0
  304. package/chunks/useAutoAcceptIndicator-ILINOSAS.js +120 -0
  305. package/chunks/{validateNonInterActiveAuth-YAE4YPO3.js → validateNonInterActiveAuth-JUDQP6V4.js} +105 -105
  306. package/chunks/{version-QFP7OGWX.js → version-C63GDDWN.js} +1 -1
  307. package/chunks/{web-fetch-6T23IK6Q.js → web-fetch-FOQZMNSC.js} +16 -18
  308. package/chunks/{web-search-WBWTCZK2.js → web-search-PUJTBFUC.js} +9 -11
  309. package/chunks/{web-shell-static-A6QMUNNV.js → web-shell-static-HNB4FDOE.js} +2 -2
  310. package/chunks/{workflow-FMAA3D4R.js → workflow-Y5IPINVH.js} +128 -94
  311. package/chunks/workspace-providers-status-IJ4VHFMB.js +114 -0
  312. package/chunks/{workspace-registration-store-CMMX7EPX.js → workspace-registration-store-SMJWI2AI.js} +1 -1
  313. package/chunks/workspace-registry-BTGZIMPK.js +123 -0
  314. package/chunks/workspace-service-SIN67ITC.js +126 -0
  315. package/chunks/workspace-skills-status-F3RKCUIX.js +113 -0
  316. package/chunks/{workspace-trust-reconciler-PJDQUTJL.js → workspace-trust-reconciler-PLIDLJZX.js} +72 -72
  317. package/chunks/write-file-PAIGB33C.js +88 -0
  318. package/chunks/{zh-TW-MV4FWFB6.js → zh-TW-RPTMRTHG.js} +2 -1
  319. package/chunks/{zh-X3WGU6SI.js → zh-UNY63FR3.js} +2 -1
  320. package/chunks/{zoom-image-WVYVFRXF.js → zoom-image-LYQD7BQA.js} +13 -13
  321. package/cli.js +16 -16
  322. package/locales/en.js +2 -0
  323. package/locales/zh-TW.js +2 -0
  324. package/locales/zh.js +2 -0
  325. package/package.json +3 -3
  326. package/web-shell/assets/{abnfDiagram-VCTEODGH-d-8xa8uz.js → abnfDiagram-VCTEODGH-TRCMSA_6.js} +1 -1
  327. package/web-shell/assets/{arc-BhB7CrGK.js → arc-D9Uls5b3.js} +1 -1
  328. package/web-shell/assets/{architectureDiagram-5GKGNRK7-BDCd_IcJ.js → architectureDiagram-5GKGNRK7-Bwb8jPXg.js} +1 -1
  329. package/web-shell/assets/{blockDiagram-NRAW4CY4-C-AHu6mi.js → blockDiagram-NRAW4CY4-DHj71TSX.js} +1 -1
  330. package/web-shell/assets/{c4Diagram-UCG6FXSJ-CFjQt0vl.js → c4Diagram-UCG6FXSJ-uKBBdbyr.js} +1 -1
  331. package/web-shell/assets/channel-CXjVLaBa.js +1 -0
  332. package/web-shell/assets/{chunk-2Q5K7J3B-DRjwqaDq.js → chunk-2Q5K7J3B-BZd0Phrl.js} +1 -1
  333. package/web-shell/assets/{chunk-5VM5RSS4-eHM9noJE.js → chunk-5VM5RSS4-7KNeNBqN.js} +1 -1
  334. package/web-shell/assets/{chunk-F27PBJKO-CcSWUYn1.js → chunk-F27PBJKO-BeboS7Fi.js} +1 -1
  335. package/web-shell/assets/{chunk-G27WJ6UU-DNr-RF5S.js → chunk-G27WJ6UU-RV3JONoj.js} +1 -1
  336. package/web-shell/assets/{chunk-JWPE2WC7-rVJHoNF8.js → chunk-JWPE2WC7-Yw9FCFsP.js} +1 -1
  337. package/web-shell/assets/{chunk-LCL6LL3I-B2aX0Gzy.js → chunk-LCL6LL3I-GIMnydDe.js} +1 -1
  338. package/web-shell/assets/{chunk-POPQ4Y6H-DVp07n32.js → chunk-POPQ4Y6H-Cfrux7bL.js} +1 -1
  339. package/web-shell/assets/{chunk-SVP7TREG-C6QB_KUr.js → chunk-SVP7TREG-BlvIN0CO.js} +1 -1
  340. package/web-shell/assets/{chunk-XXDRQBXY-CLVxDNCy.js → chunk-XXDRQBXY-DMs7Rr4t.js} +1 -1
  341. package/web-shell/assets/classDiagram-DTDB5LWJ-DANEijO3.js +1 -0
  342. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DANEijO3.js +1 -0
  343. package/web-shell/assets/{cose-bilkent-JH36ORCC-B_aKX3A3.js → cose-bilkent-JH36ORCC-DNGqTNwI.js} +1 -1
  344. package/web-shell/assets/{cynefin-OW5HDTMX-BBw2pPUa.js → cynefin-OW5HDTMX-CojMpaoH.js} +1 -1
  345. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-WWPiBTwk.js → cynefinDiagram-5FMLGOSQ-DF07YXGo.js} +1 -1
  346. package/web-shell/assets/{dagre-3AP2YEHR-CPtIdka-.js → dagre-3AP2YEHR-17-4WtCH.js} +1 -1
  347. package/web-shell/assets/{diagram-S7CK7UJ4-Dj5og1Xi.js → diagram-S7CK7UJ4-G3Wuyz9m.js} +1 -1
  348. package/web-shell/assets/{diagram-UQ7AKVKN-CC_x70YC.js → diagram-UQ7AKVKN-nyWIKZ8P.js} +1 -1
  349. package/web-shell/assets/{diagram-VSXAHHWV-rXMfsO4n.js → diagram-VSXAHHWV-tKHhmYSC.js} +1 -1
  350. package/web-shell/assets/{diagram-VX7I27RA-DEmLYQbh.js → diagram-VX7I27RA-CpDf1hYk.js} +1 -1
  351. package/web-shell/assets/{diagram-Z3DM3KII-B0ys6Vxx.js → diagram-Z3DM3KII-Cah2IFXG.js} +1 -1
  352. package/web-shell/assets/{ebnfDiagram-PWID7BFC-Bq6y6lKH.js → ebnfDiagram-PWID7BFC-DNaCkgxy.js} +1 -1
  353. package/web-shell/assets/{erDiagram-SSCWMZ5O-l69JeBZ4.js → erDiagram-SSCWMZ5O-CAdRgcf1.js} +1 -1
  354. package/web-shell/assets/{flowDiagram-A5DVABFB-Cm-EzGY4.js → flowDiagram-A5DVABFB-CMUJAShL.js} +1 -1
  355. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-BRS9ZOp7.js → ganttDiagram-EL5Y4UJY-o-_MUNey.js} +1 -1
  356. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-DAMRKgLk.js → gitGraphDiagram-WWUBYQGX-_aG-2Z7O.js} +1 -1
  357. package/web-shell/assets/{index-Bncx8E8M.js → index-BK_NKxiJ.js} +1 -1
  358. package/web-shell/assets/index-Ci-z4zWY.js +1913 -0
  359. package/web-shell/assets/index-LDlXZRHA.css +36 -0
  360. package/web-shell/assets/{infoDiagram-RXCK75RN-DasffaZp.js → infoDiagram-RXCK75RN-qJPeZbGP.js} +1 -1
  361. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-CmRUt3C-.js → ishikawaDiagram-5VMMS53U-7Om4vNo1.js} +1 -1
  362. package/web-shell/assets/{journeyDiagram-EYS64GPL-DzhE_c1Z.js → journeyDiagram-EYS64GPL-BNtXqmBW.js} +1 -1
  363. package/web-shell/assets/{kanban-definition-3QL26DDD-BH5b6nn3.js → kanban-definition-3QL26DDD-COgFec8P.js} +1 -1
  364. package/web-shell/assets/{layout-BxoLK-LY.js → layout-B9n81PC9.js} +1 -1
  365. package/web-shell/assets/{linear-CqDPvVI7.js → linear-Bb6nXZQq.js} +1 -1
  366. package/web-shell/assets/{mermaid.core-DBoN4plo.js → mermaid.core-Cgrm3JVT.js} +6 -6
  367. package/web-shell/assets/{mindmap-definition-FBJOCRG2-DJJtXPEM.js → mindmap-definition-FBJOCRG2-TKwLTjnG.js} +1 -1
  368. package/web-shell/assets/{pegDiagram-XKGWAZYB-DmgPXP5l.js → pegDiagram-XKGWAZYB-BJPuvlpi.js} +1 -1
  369. package/web-shell/assets/{pieDiagram-E7YTZNPT-1ezjzcI5.js → pieDiagram-E7YTZNPT-D01VkNsW.js} +1 -1
  370. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-ChKARz3k.js → quadrantDiagram-AXDQQJYC-C4hHsiv-.js} +1 -1
  371. package/web-shell/assets/{railroadDiagram-O6MQD6OU-k7mNB_QT.js → railroadDiagram-O6MQD6OU-CuEO4xK2.js} +1 -1
  372. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-B0XFsii0.js → requirementDiagram-EFPCY7ZU-D5J_vIo5.js} +1 -1
  373. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-repJ2Ukk.js → sankeyDiagram-P5KCCOFB-DQKY223V.js} +1 -1
  374. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-D0gUSKGu.js → sequenceDiagram-WJ2MYXX4-D27YV_cm.js} +1 -1
  375. package/web-shell/assets/{sizeCapture-X5ZJPWSS-CE463F74.js → sizeCapture-X5ZJPWSS-TJg8UcwV.js} +1 -1
  376. package/web-shell/assets/{stateDiagram-HBIQ2CUA-003zYtJa.js → stateDiagram-HBIQ2CUA-CmnPzUIx.js} +1 -1
  377. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DNKPyrDc.js +1 -0
  378. package/web-shell/assets/{swimlanes-XN3QIQJK-DBj8MFpu.js → swimlanes-XN3QIQJK-ByeP3_Nu.js} +1 -1
  379. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-ZL1HPC6w.js +8 -0
  380. package/web-shell/assets/{timeline-definition-24CTP7MA-D2aCh4a9.js → timeline-definition-24CTP7MA-BsFA5juR.js} +1 -1
  381. package/web-shell/assets/{vennDiagram-4TSXK5OY-BHMfWBpl.js → vennDiagram-4TSXK5OY-DREP2ECo.js} +1 -1
  382. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-RdHAj66j.js → wardleyDiagram-VM6X3IG4-iyd9lKi2.js} +1 -1
  383. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-BgJWOvq0.js → xychartDiagram-S5SC5T6Z-CVr1_j9q.js} +1 -1
  384. package/web-shell/index.html +3 -3
  385. package/chunks/MaxSizedBox-BFVLZP2E.js +0 -112
  386. package/chunks/agent-headless-UCBCS4V4.js +0 -87
  387. package/chunks/bridge-FRNYLYY7.js +0 -119
  388. package/chunks/channel-settings-store-IV4KDL7N.js +0 -117
  389. package/chunks/chunk-I6VVOZDK.js +0 -202
  390. package/chunks/chunk-JS73NNWF.js +0 -30
  391. package/chunks/chunk-K2OJUPOE.js +0 -78
  392. package/chunks/chunk-P3QQPMQA.js +0 -19
  393. package/chunks/chunk-SDVF6A42.js +0 -945
  394. package/chunks/chunk-VGHZT6JR.js +0 -51
  395. package/chunks/config-utils-PMX4QZ5Y.js +0 -113
  396. package/chunks/contextCommand-NZRLVAFC.js +0 -108
  397. package/chunks/daemon-status-provider-FTTYZEKN.js +0 -118
  398. package/chunks/daemon-trust-policy-WMGFPA3Z.js +0 -114
  399. package/chunks/deferred-core-runtime-BUFEFYNA.js +0 -116
  400. package/chunks/earlyInputCapture-ROPLMXA7.js +0 -109
  401. package/chunks/errors-U5KNAADB.js +0 -115
  402. package/chunks/exitPlanMode-VFJ5R5DD.js +0 -85
  403. package/chunks/handleAutoUpdate-W4BUYFT7.js +0 -111
  404. package/chunks/i18n-KX7FEKJJ.js +0 -126
  405. package/chunks/initializer-SNVVLS7Y.js +0 -115
  406. package/chunks/installationInfo-D4XGQNHJ.js +0 -109
  407. package/chunks/list-WYECMLXZ.js +0 -118
  408. package/chunks/loadedSettingsAdapter-5WZBXBCR.js +0 -112
  409. package/chunks/mcp-CBWAROY3.js +0 -112
  410. package/chunks/nonInteractiveCli-O232UUV7.js +0 -185
  411. package/chunks/pidfile-MSPQ255Y.js +0 -113
  412. package/chunks/process-registry-PMJOA5CO.js +0 -172
  413. package/chunks/prompt-terminal-ledger-YPGMNDXT.js +0 -107
  414. package/chunks/resumeHistoryUtils-35D4KAVT.js +0 -120
  415. package/chunks/ripGrep-46N4FLOS.js +0 -39
  416. package/chunks/serve-WQ54UIYG.js +0 -120
  417. package/chunks/skill-settings-SKMN5YXC.js +0 -120
  418. package/chunks/spawnChannel-NE43EEO3.js +0 -113
  419. package/chunks/standalone-update-XOCWGXAH.js +0 -120
  420. package/chunks/terminal-image-renderer-NREKYTAD.js +0 -116
  421. package/chunks/theme-manager-IJS6OICX.js +0 -104
  422. package/chunks/total-session-admission-L5RPEFZ2.js +0 -114
  423. package/chunks/trustedFolders-OILZCHRD.js +0 -124
  424. package/chunks/updateCheck-AK4COHNK.js +0 -120
  425. package/chunks/useAutoAcceptIndicator-O2N2Q6KG.js +0 -122
  426. package/chunks/workspace-providers-status-OCFEWIPQ.js +0 -116
  427. package/chunks/workspace-registry-WJLZPRTG.js +0 -123
  428. package/chunks/workspace-service-5ZOBMMIB.js +0 -131
  429. package/chunks/workspace-skills-status-B6NJZD4B.js +0 -115
  430. package/chunks/write-file-B2RNX6SU.js +0 -90
  431. package/web-shell/assets/channel-CU-Zyv0r.js +0 -1
  432. package/web-shell/assets/classDiagram-DTDB5LWJ-C0J2_LKs.js +0 -1
  433. package/web-shell/assets/classDiagram-v2-JRS7N3AN-C0J2_LKs.js +0 -1
  434. package/web-shell/assets/index-C-XlQn24.css +0 -5
  435. package/web-shell/assets/index-gdvMN4J1.js +0 -1860
  436. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-2uACDdJN.js +0 -1
  437. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-C4JJkavU.js +0 -8
@@ -0,0 +1,337 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ init_esbuild_shims
5
+ } from "./chunk-5O2XNYP6.js";
6
+ import {
7
+ __name
8
+ } from "./chunk-J2S4EL5Y.js";
9
+
10
+ // packages/cli/src/utils/conversation-directory-identity.ts
11
+ init_esbuild_shims();
12
+ import { createHash } from "node:crypto";
13
+ import { lstat, mkdir, realpath } from "node:fs/promises";
14
+ import { isAbsolute, join, relative, resolve, sep } from "node:path";
15
+ function hasVerifiableInode(ino) {
16
+ return Number(ino) !== 0;
17
+ }
18
+ __name(hasVerifiableInode, "hasVerifiableInode");
19
+ var ConversationDirectoryIdentityError = class extends Error {
20
+ constructor(scope, reason, cause) {
21
+ super(
22
+ `Conversation ${scope} identity validation failed: ${reason}`,
23
+ cause !== void 0 ? { cause } : void 0
24
+ );
25
+ this.scope = scope;
26
+ this.reason = reason;
27
+ }
28
+ static {
29
+ __name(this, "ConversationDirectoryIdentityError");
30
+ }
31
+ name = "ConversationDirectoryIdentityError";
32
+ };
33
+ function throwIdentityIoError(scope, cause) {
34
+ throw new ConversationDirectoryIdentityError(scope, "io_error", cause);
35
+ }
36
+ __name(throwIdentityIoError, "throwIdentityIoError");
37
+ var isSameConversationPath = /* @__PURE__ */ __name((left, right) => process.platform === "win32" ? left.toLowerCase() === right.toLowerCase() : left === right, "isSameConversationPath");
38
+ function getConversationDirectoryName(storageSessionId) {
39
+ if (storageSessionId.length === 0 || storageSessionId.length > 256) {
40
+ throw new ConversationDirectoryIdentityError("child", "invalid_session_id");
41
+ }
42
+ return `conversation-${createHash("sha256").update(storageSessionId).digest("hex")}`;
43
+ }
44
+ __name(getConversationDirectoryName, "getConversationDirectoryName");
45
+ function getConversationStagedDirectoryName(storageSessionId) {
46
+ return `${getConversationDirectoryName(storageSessionId)}.deleting`;
47
+ }
48
+ __name(getConversationStagedDirectoryName, "getConversationStagedDirectoryName");
49
+ function validateDirectoryStats(stats, scope) {
50
+ if (stats.isSymbolicLink() || !stats.isDirectory()) {
51
+ throw new ConversationDirectoryIdentityError(scope, "not_directory");
52
+ }
53
+ if (process.platform !== "win32" && typeof process.getuid === "function" && stats.uid !== process.getuid()) {
54
+ throw new ConversationDirectoryIdentityError(scope, "wrong_owner");
55
+ }
56
+ if (process.platform !== "win32" && (stats.mode & 63) !== 0) {
57
+ throw new ConversationDirectoryIdentityError(scope, "wrong_mode");
58
+ }
59
+ }
60
+ __name(validateDirectoryStats, "validateDirectoryStats");
61
+ function hasRootIdentity(stats, root) {
62
+ if (!root.inodeVerifiable) return stats.dev === root.device;
63
+ return hasVerifiableInode(stats.ino) && stats.dev === root.device && stats.ino === root.inode;
64
+ }
65
+ __name(hasRootIdentity, "hasRootIdentity");
66
+ function isSameDirectoryIdentity(before, after) {
67
+ if (!hasVerifiableInode(before.ino) || !hasVerifiableInode(after.ino)) {
68
+ return before.dev === after.dev;
69
+ }
70
+ return before.dev === after.dev && before.ino === after.ino;
71
+ }
72
+ __name(isSameDirectoryIdentity, "isSameDirectoryIdentity");
73
+ function hasExpectedDirectoryIdentity(identity, expected) {
74
+ const identityInodeVerifiable = hasVerifiableInode(identity.inode);
75
+ const expectedInodeVerifiable = hasVerifiableInode(expected.inode);
76
+ return identity.storageSessionId === expected.storageSessionId && identity.name === expected.name && isSameConversationPath(identity.canonicalPath, expected.canonicalPath) && identity.device === expected.device && identityInodeVerifiable === expectedInodeVerifiable && (!identityInodeVerifiable || identity.inode === expected.inode) && isSameConversationPath(
77
+ identity.root.configuredRoot,
78
+ expected.root.configuredRoot
79
+ ) && isSameConversationPath(
80
+ identity.root.canonicalRoot,
81
+ expected.root.canonicalRoot
82
+ ) && identity.root.device === expected.root.device && identity.root.inodeVerifiable === expected.root.inodeVerifiable && (!identity.root.inodeVerifiable || identity.root.inode === expected.root.inode);
83
+ }
84
+ __name(hasExpectedDirectoryIdentity, "hasExpectedDirectoryIdentity");
85
+ async function createConversationRootIdentity(configuredRoot) {
86
+ try {
87
+ await mkdir(configuredRoot, { recursive: true, mode: 448 });
88
+ } catch (error) {
89
+ let existing;
90
+ try {
91
+ existing = await lstat(configuredRoot);
92
+ } catch {
93
+ throwIdentityIoError("root", error);
94
+ }
95
+ validateDirectoryStats(existing, "root");
96
+ throwIdentityIoError("root", error);
97
+ }
98
+ let before;
99
+ try {
100
+ before = await lstat(configuredRoot);
101
+ } catch (error) {
102
+ throwIdentityIoError("root", error);
103
+ }
104
+ validateDirectoryStats(before, "root");
105
+ let canonicalRoot;
106
+ let after;
107
+ try {
108
+ canonicalRoot = await realpath(configuredRoot);
109
+ after = await lstat(canonicalRoot);
110
+ } catch (error) {
111
+ throwIdentityIoError("root", error);
112
+ }
113
+ validateDirectoryStats(after, "root");
114
+ if (!isSameDirectoryIdentity(before, after)) {
115
+ throw new ConversationDirectoryIdentityError("root", "identity_changed");
116
+ }
117
+ return {
118
+ configuredRoot,
119
+ canonicalRoot,
120
+ device: after.dev,
121
+ inode: after.ino,
122
+ inodeVerifiable: hasVerifiableInode(after.ino)
123
+ };
124
+ }
125
+ __name(createConversationRootIdentity, "createConversationRootIdentity");
126
+ async function revalidateConversationRootIdentity(root) {
127
+ let configuredStats;
128
+ try {
129
+ configuredStats = await lstat(root.configuredRoot);
130
+ } catch (error) {
131
+ throwIdentityIoError("root", error);
132
+ }
133
+ validateDirectoryStats(configuredStats, "root");
134
+ if (!hasRootIdentity(configuredStats, root)) {
135
+ throw new ConversationDirectoryIdentityError("root", "identity_changed");
136
+ }
137
+ let canonical;
138
+ try {
139
+ canonical = await realpath(root.configuredRoot);
140
+ } catch (error) {
141
+ throwIdentityIoError("root", error);
142
+ }
143
+ if (!isSameConversationPath(canonical, root.canonicalRoot)) {
144
+ throw new ConversationDirectoryIdentityError(
145
+ "root",
146
+ "canonical_path_changed"
147
+ );
148
+ }
149
+ let canonicalStats;
150
+ try {
151
+ canonicalStats = await lstat(root.canonicalRoot);
152
+ } catch (error) {
153
+ throwIdentityIoError("root", error);
154
+ }
155
+ validateDirectoryStats(canonicalStats, "root");
156
+ if (!hasRootIdentity(canonicalStats, root)) {
157
+ throw new ConversationDirectoryIdentityError("root", "identity_changed");
158
+ }
159
+ return root;
160
+ }
161
+ __name(revalidateConversationRootIdentity, "revalidateConversationRootIdentity");
162
+ async function assertExactConversationRootIdentity(root, candidate) {
163
+ await revalidateConversationRootIdentity(root);
164
+ const resolvedCandidate = resolve(candidate);
165
+ if (!isSameConversationPath(resolvedCandidate, root.configuredRoot) && !isSameConversationPath(resolvedCandidate, root.canonicalRoot)) {
166
+ throw new ConversationDirectoryIdentityError("root", "unexpected_identity");
167
+ }
168
+ let stats;
169
+ let canonical;
170
+ try {
171
+ stats = await lstat(resolvedCandidate);
172
+ validateDirectoryStats(stats, "root");
173
+ canonical = await realpath(resolvedCandidate);
174
+ } catch (error) {
175
+ if (error instanceof ConversationDirectoryIdentityError) throw error;
176
+ throwIdentityIoError("root", error);
177
+ }
178
+ if (!isSameConversationPath(canonical, root.canonicalRoot) || !hasRootIdentity(stats, root)) {
179
+ throw new ConversationDirectoryIdentityError("root", "unexpected_identity");
180
+ }
181
+ return root;
182
+ }
183
+ __name(assertExactConversationRootIdentity, "assertExactConversationRootIdentity");
184
+ async function inspectConversationNamedDirectoryIdentity(root, storageSessionId, name, expected) {
185
+ await revalidateConversationRootIdentity(root);
186
+ const candidate = join(root.canonicalRoot, name);
187
+ let before;
188
+ try {
189
+ before = await lstat(candidate);
190
+ } catch (error) {
191
+ if (error.code === "ENOENT") return void 0;
192
+ throwIdentityIoError("child", error);
193
+ }
194
+ validateDirectoryStats(before, "child");
195
+ let canonical;
196
+ let after;
197
+ try {
198
+ canonical = await realpath(candidate);
199
+ after = await lstat(canonical);
200
+ } catch (error) {
201
+ if (error.code === "ENOENT") return void 0;
202
+ throwIdentityIoError("child", error);
203
+ }
204
+ validateDirectoryStats(after, "child");
205
+ const child = relative(root.canonicalRoot, canonical);
206
+ if (child !== name || child.includes(sep) || child.startsWith("..") || isAbsolute(child)) {
207
+ throw new ConversationDirectoryIdentityError("child", "not_direct_child");
208
+ }
209
+ if (!isSameDirectoryIdentity(before, after)) {
210
+ throw new ConversationDirectoryIdentityError("child", "identity_changed");
211
+ }
212
+ await revalidateConversationRootIdentity(root);
213
+ const identity = {
214
+ root,
215
+ storageSessionId,
216
+ name,
217
+ canonicalPath: canonical,
218
+ device: after.dev,
219
+ inode: after.ino
220
+ };
221
+ if (expected && !hasExpectedDirectoryIdentity(identity, expected)) {
222
+ throw new ConversationDirectoryIdentityError(
223
+ "child",
224
+ "unexpected_identity"
225
+ );
226
+ }
227
+ return identity;
228
+ }
229
+ __name(inspectConversationNamedDirectoryIdentity, "inspectConversationNamedDirectoryIdentity");
230
+ async function inspectConversationDirectoryIdentity(root, storageSessionId, expected) {
231
+ return inspectConversationNamedDirectoryIdentity(
232
+ root,
233
+ storageSessionId,
234
+ getConversationDirectoryName(storageSessionId),
235
+ expected
236
+ );
237
+ }
238
+ __name(inspectConversationDirectoryIdentity, "inspectConversationDirectoryIdentity");
239
+ async function inspectConversationStagedDirectoryIdentity(root, storageSessionId) {
240
+ return inspectConversationNamedDirectoryIdentity(
241
+ root,
242
+ storageSessionId,
243
+ getConversationStagedDirectoryName(storageSessionId)
244
+ );
245
+ }
246
+ __name(inspectConversationStagedDirectoryIdentity, "inspectConversationStagedDirectoryIdentity");
247
+ function isSameConversationDirectoryObject(identity, expected) {
248
+ const identityInodeVerifiable = hasVerifiableInode(identity.inode);
249
+ const expectedInodeVerifiable = hasVerifiableInode(expected.inode);
250
+ return identity.storageSessionId === expected.storageSessionId && identity.device === expected.device && identityInodeVerifiable === expectedInodeVerifiable && (!identityInodeVerifiable || identity.inode === expected.inode) && isSameConversationPath(
251
+ identity.root.canonicalRoot,
252
+ expected.root.canonicalRoot
253
+ ) && identity.root.device === expected.root.device && identity.root.inodeVerifiable === expected.root.inodeVerifiable && (!identity.root.inodeVerifiable || identity.root.inode === expected.root.inode);
254
+ }
255
+ __name(isSameConversationDirectoryObject, "isSameConversationDirectoryObject");
256
+ async function materializeConversationDirectoryIdentity(root, storageSessionId) {
257
+ await revalidateConversationRootIdentity(root);
258
+ const name = getConversationDirectoryName(storageSessionId);
259
+ const candidate = join(root.canonicalRoot, name);
260
+ let created = false;
261
+ try {
262
+ await mkdir(candidate, { mode: 448 });
263
+ created = true;
264
+ } catch (error) {
265
+ if (error.code !== "EEXIST") {
266
+ throwIdentityIoError("child", error);
267
+ }
268
+ }
269
+ const identity = await inspectConversationDirectoryIdentity(
270
+ root,
271
+ storageSessionId
272
+ );
273
+ if (!identity) {
274
+ throw new ConversationDirectoryIdentityError("child", "identity_changed");
275
+ }
276
+ return { identity, created };
277
+ }
278
+ __name(materializeConversationDirectoryIdentity, "materializeConversationDirectoryIdentity");
279
+
280
+ // packages/core/dist/src/services/tool-write-origin.js
281
+ init_esbuild_shims();
282
+ var TOOL_WRITE_ORIGIN_META_KEY = "qwen-code/tool-write-origin";
283
+ var TOOL_WRITE_ORIGINS = [
284
+ "write_file",
285
+ "edit",
286
+ "notebook_edit",
287
+ "shell_sed_edit"
288
+ ];
289
+ var TOOL_WRITE_ORIGIN_SET = new Set(TOOL_WRITE_ORIGINS);
290
+ function buildToolWriteOriginMeta(meta, source) {
291
+ const sanitized = { ...meta };
292
+ delete sanitized[TOOL_WRITE_ORIGIN_META_KEY];
293
+ if (source !== void 0) {
294
+ sanitized[TOOL_WRITE_ORIGIN_META_KEY] = { version: 1, source };
295
+ }
296
+ return Object.keys(sanitized).length > 0 ? sanitized : void 0;
297
+ }
298
+ __name(buildToolWriteOriginMeta, "buildToolWriteOriginMeta");
299
+ function parseToolWriteOriginMeta(meta) {
300
+ const marker = meta?.[TOOL_WRITE_ORIGIN_META_KEY];
301
+ if (typeof marker !== "object" || marker === null || Array.isArray(marker)) {
302
+ return void 0;
303
+ }
304
+ const keys = Object.keys(marker);
305
+ if (keys.length !== 2 || !Object.hasOwn(marker, "version") || !Object.hasOwn(marker, "source")) {
306
+ return void 0;
307
+ }
308
+ const record = marker;
309
+ return record["version"] === 1 && typeof record["source"] === "string" && TOOL_WRITE_ORIGIN_SET.has(record["source"]) ? record["source"] : void 0;
310
+ }
311
+ __name(parseToolWriteOriginMeta, "parseToolWriteOriginMeta");
312
+
313
+ export {
314
+ buildToolWriteOriginMeta,
315
+ parseToolWriteOriginMeta,
316
+ ConversationDirectoryIdentityError,
317
+ isSameConversationPath,
318
+ getConversationDirectoryName,
319
+ getConversationStagedDirectoryName,
320
+ createConversationRootIdentity,
321
+ revalidateConversationRootIdentity,
322
+ assertExactConversationRootIdentity,
323
+ inspectConversationDirectoryIdentity,
324
+ inspectConversationStagedDirectoryIdentity,
325
+ isSameConversationDirectoryObject,
326
+ materializeConversationDirectoryIdentity
327
+ };
328
+ /**
329
+ * @license
330
+ * Copyright 2026 Qwen Team
331
+ * SPDX-License-Identifier: Apache-2.0
332
+ */
333
+ /**
334
+ * @license
335
+ * Copyright 2025 Google LLC
336
+ * SPDX-License-Identifier: Apache-2.0
337
+ */
@@ -1108,6 +1108,21 @@ var Storage = class _Storage {
1108
1108
  getWorkflowRunsDir() {
1109
1109
  return path2.join(this.getProjectDir(), "workflows");
1110
1110
  }
1111
+ /**
1112
+ * Generated-workflow scripts directory: `<projectDir>/workflows/generated`.
1113
+ * A trusted root for `Workflow({scriptPath})` / `workflow({scriptPath})`
1114
+ * that is NOT a saved-workflow scope: scripts here are never listed as
1115
+ * `/<name>` slash commands and cannot be reached by `workflow('<name>')`.
1116
+ * It exists for tooling that emits a script for one run (a CLI subcommand
1117
+ * generating a fan-out for the model to dispatch) — such a script has no
1118
+ * business in the user's command namespace, and the runtime dir keeps it
1119
+ * out of the project tree. Layout below the root is the writer's; the
1120
+ * loader trusts the whole subtree. A subprocess reaches it as
1121
+ * `$QWEN_CODE_PROJECT_DIR/workflows/generated`.
1122
+ */
1123
+ getGeneratedWorkflowsDir() {
1124
+ return path2.join(this.getWorkflowRunsDir(), "generated");
1125
+ }
1111
1126
  /**
1112
1127
  * Path to the persisted snapshot of a completed workflow run.
1113
1128
  */
@@ -5,14 +5,14 @@ import {
5
5
  isTranscribableVoiceModel,
6
6
  readVoiceLanguage,
7
7
  resolveVoiceTransport
8
- } from "./chunk-2MHGD7EE.js";
8
+ } from "./chunk-A3LWD5MK.js";
9
9
  import {
10
10
  resolvePath
11
- } from "./chunk-2SERYG4T.js";
11
+ } from "./chunk-YTDVNSUQ.js";
12
12
  import {
13
13
  createDebugLogger,
14
14
  isSubpath
15
- } from "./chunk-2NNTE2ED.js";
15
+ } from "./chunk-UHQFIS7N.js";
16
16
  import {
17
17
  init_esbuild_shims
18
18
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  createDebugLogger
5
- } from "./chunk-2NNTE2ED.js";
5
+ } from "./chunk-UHQFIS7N.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,10 +2,10 @@
2
2
  "use strict";
3
3
  import {
4
4
  isGitRepository
5
- } from "./chunk-DEYPMJPD.js";
5
+ } from "./chunk-SMPR7SPO.js";
6
6
  import {
7
7
  createDebugLogger
8
- } from "./chunk-2NNTE2ED.js";
8
+ } from "./chunk-UHQFIS7N.js";
9
9
  import {
10
10
  init_esbuild_shims
11
11
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  createDebugLogger
5
- } from "./chunk-2NNTE2ED.js";
5
+ } from "./chunk-UHQFIS7N.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -716,7 +716,7 @@ function anthropicTools(value) {
716
716
  return result;
717
717
  }
718
718
  __name(anthropicTools, "anthropicTools");
719
- function geminiTools(value) {
719
+ function llmTools(value) {
720
720
  if (!Array.isArray(value)) return void 0;
721
721
  const result = [];
722
722
  for (const wrapper of value) {
@@ -734,7 +734,7 @@ function geminiTools(value) {
734
734
  }
735
735
  return result;
736
736
  }
737
- __name(geminiTools, "geminiTools");
737
+ __name(llmTools, "llmTools");
738
738
  function extractOpenAiContent(request) {
739
739
  const value = request;
740
740
  return {
@@ -756,7 +756,7 @@ function extractAnthropicContent(request) {
756
756
  };
757
757
  }
758
758
  __name(extractAnthropicContent, "extractAnthropicContent");
759
- function extractGeminiContent(request) {
759
+ function extractLlmContent(request) {
760
760
  const value = request;
761
761
  const config = record(value["config"]);
762
762
  return {
@@ -766,10 +766,10 @@ function extractGeminiContent(request) {
766
766
  (role) => role === "model" ? "assistant" : role
767
767
  ) : void 0,
768
768
  systemInstructions: config && Object.hasOwn(config, "systemInstruction") ? systemParts(config["systemInstruction"], geminiPart) : void 0,
769
- toolDefinitions: config && Object.hasOwn(config, "tools") ? geminiTools(config["tools"]) : void 0
769
+ toolDefinitions: config && Object.hasOwn(config, "tools") ? llmTools(config["tools"]) : void 0
770
770
  };
771
771
  }
772
- __name(extractGeminiContent, "extractGeminiContent");
772
+ __name(extractLlmContent, "extractLlmContent");
773
773
  function stringifyGenAiJson(value, maxLength, requireObject = false) {
774
774
  const converted = jsonValue(value);
775
775
  if (converted === void 0 || requireObject && (converted === null || Array.isArray(converted) || typeof converted !== "object")) {
@@ -1032,7 +1032,7 @@ var GenAiOutputAccumulator = class {
1032
1032
  if (finishReason) candidate.finishReason = finishReason;
1033
1033
  }
1034
1034
  }
1035
- recordGeminiResponse(response) {
1035
+ recordLlmResponse(response) {
1036
1036
  const candidates = response["candidates"];
1037
1037
  if (!Array.isArray(candidates)) return;
1038
1038
  this.observedResponse = true;
@@ -1061,7 +1061,7 @@ var GenAiOutputAccumulator = class {
1061
1061
  if (finishReason) outputCandidate.finishReason = finishReason;
1062
1062
  }
1063
1063
  }
1064
- recordGeminiChunk(chunk) {
1064
+ recordLlmChunk(chunk) {
1065
1065
  const candidates = chunk["candidates"];
1066
1066
  if (!Array.isArray(candidates)) return;
1067
1067
  this.observedResponse = true;
@@ -1241,7 +1241,7 @@ var GenAiOutputAccumulator = class {
1241
1241
  export {
1242
1242
  extractOpenAiContent,
1243
1243
  extractAnthropicContent,
1244
- extractGeminiContent,
1244
+ extractLlmContent,
1245
1245
  stringifyGenAiJson,
1246
1246
  GenAiOutputAccumulator
1247
1247
  };
@@ -2,14 +2,14 @@
2
2
  "use strict";
3
3
  import {
4
4
  getCurrentAgentId
5
- } from "./chunk-U45D46O5.js";
5
+ } from "./chunk-CMHFCLBU.js";
6
6
  import {
7
7
  getTeammateContext,
8
8
  isTeammate
9
9
  } from "./chunk-S6LOFUVP.js";
10
10
  import {
11
11
  ToolNames
12
- } from "./chunk-KOJ6MHD5.js";
12
+ } from "./chunk-UTLCH2FK.js";
13
13
  import {
14
14
  init_esbuild_shims
15
15
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  parseRule
5
- } from "./chunk-XIRDDFRS.js";
5
+ } from "./chunk-PZ66FRIC.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -7,10 +7,10 @@ import {
7
7
  OpenAIContentConverter,
8
8
  TaggedThinkingParser,
9
9
  openaiRequestCaptureContext
10
- } from "./chunk-BQBUZDDH.js";
10
+ } from "./chunk-DJECZIJX.js";
11
11
  import {
12
12
  safeJsonParse
13
- } from "./chunk-E4I5MVBR.js";
13
+ } from "./chunk-ABS25QER.js";
14
14
  import {
15
15
  runtimeDiagnostics
16
16
  } from "./chunk-VNOVK4I7.js";
@@ -18,18 +18,22 @@ import {
18
18
  reportOpenAiChunk,
19
19
  reportOpenAiRequest,
20
20
  reportOpenAiResponse
21
- } from "./chunk-5T4LWWNX.js";
21
+ } from "./chunk-KYWTPLBJ.js";
22
22
  import {
23
23
  applyOfficialOpenAIPromptCaching,
24
24
  isOfficialOpenAIEndpoint
25
- } from "./chunk-SAH4BD2J.js";
25
+ } from "./chunk-PQEISIKS.js";
26
26
  import {
27
27
  DashScopeOpenAICompatibleProvider,
28
28
  DefaultOpenAICompatibleProvider
29
- } from "./chunk-ZKAZP2ZG.js";
29
+ } from "./chunk-EB6QRGHM.js";
30
30
  import {
31
31
  getCurrentAgentId
32
- } from "./chunk-U45D46O5.js";
32
+ } from "./chunk-CMHFCLBU.js";
33
+ import {
34
+ InvalidStreamError,
35
+ getToolCallPreparations
36
+ } from "./chunk-CFKIH3D3.js";
33
37
  import {
34
38
  DEFAULT_STREAM_IDLE_TIMEOUT_MS,
35
39
  DEFAULT_STREAM_MAX_LIFETIME_MS,
@@ -42,39 +46,33 @@ import {
42
46
  createChildAbortController
43
47
  } from "./chunk-DJ2GSRLV.js";
44
48
  import {
49
+ getRateLimitErrorDetails,
45
50
  getTransportCode
46
- } from "./chunk-I6VVOZDK.js";
47
- import {
48
- InvalidStreamError,
49
- getToolCallPreparations
50
- } from "./chunk-CFKIH3D3.js";
51
- import {
52
- getRateLimitErrorDetails
53
- } from "./chunk-EB4VDXNI.js";
51
+ } from "./chunk-DYXFD5RO.js";
54
52
  import {
55
53
  ProtocolTagSanitizedEvent,
56
54
  logProtocolTagSanitized
57
- } from "./chunk-OF2DPXUS.js";
55
+ } from "./chunk-QYMAKPY5.js";
58
56
  import {
59
57
  isQwenFamilyWireModel,
60
58
  isTieredEffortWireModel
61
- } from "./chunk-YRLW2MSX.js";
59
+ } from "./chunk-XBVNNDPK.js";
62
60
  import {
63
61
  reconcileMaxTokens
64
62
  } from "./chunk-FPGTNKCP.js";
65
63
  import {
66
64
  redactProxyError
67
- } from "./chunk-GTUKW3I6.js";
65
+ } from "./chunk-PPKZ7JOE.js";
68
66
  import {
69
67
  isInForkExecution
70
- } from "./chunk-7OBH4AM2.js";
68
+ } from "./chunk-CAJTKR6W.js";
71
69
  import {
72
70
  createDebugLogger,
73
71
  getErrorMessage,
74
72
  getErrorStatus,
75
73
  getErrorType,
76
74
  isAbortError
77
- } from "./chunk-2NNTE2ED.js";
75
+ } from "./chunk-UHQFIS7N.js";
78
76
  import {
79
77
  GenerateContentResponse
80
78
  } from "./chunk-64REQJJ2.js";
@@ -190,16 +188,17 @@ var DeepSeekOpenAICompatibleProvider = class extends DefaultOpenAICompatibleProv
190
188
  return isDeepSeekHostname(this.contentGeneratorConfig) ? REASONING_EFFORT_TIERS : super.supportedReasoningEffortsFor(model);
191
189
  }
192
190
  /**
193
- * DeepSeek's API requires message content to be a plain string, not an
194
- * array of content parts. Flatten any text-part arrays into joined
195
- * strings; non-text parts (image_url, audio, …) are replaced with a
196
- * `[Unsupported content type: <type>]` placeholder so the request still
197
- * goes through with a textual breadcrumb rather than silently dropping
198
- * the part or raising mid-conversation. Also translate the standard
199
- * `reasoning.effort` config into DeepSeek's flat `reasoning_effort`
200
- * body parameter but only on actual DeepSeek hostnames, since the
201
- * model-name fallback above can match self-hosted/strict OpenAI-compat
202
- * backends that don't accept the DeepSeek extension.
191
+ * Text-only DeepSeek APIs require message content to be a plain string, not
192
+ * an array of content parts. Flatten text-only request arrays into joined
193
+ * strings; non-text parts (image_url, audio, …) are replaced with an
194
+ * `[Unsupported content type: <type>]` placeholder so the request still goes
195
+ * through with a textual breadcrumb rather than silently dropping the part
196
+ * or raising mid-conversation. Models that explicitly declare image input
197
+ * retain multipart content for compatible gateways. Also translate the
198
+ * standard `reasoning.effort` config into DeepSeek's flat `reasoning_effort`
199
+ * body parameter but only on actual DeepSeek hostnames, since the model-name
200
+ * fallback above can match self-hosted/strict OpenAI-compat backends that
201
+ * don't accept the DeepSeek extension.
203
202
  */
204
203
  buildRequest(request, userPromptId) {
205
204
  const baseRequest = super.buildRequest(request, userPromptId);
@@ -207,10 +206,11 @@ var DeepSeekOpenAICompatibleProvider = class extends DefaultOpenAICompatibleProv
207
206
  if (!reshaped.messages?.length) {
208
207
  return reshaped;
209
208
  }
210
- const messages = reshaped.messages.map((message) => {
211
- const flattened = flattenContentParts(message);
212
- return ensureReasoningContentOnAssistantMessage(flattened);
213
- });
209
+ const messages = reshaped.messages.map(
210
+ (message) => ensureReasoningContentOnAssistantMessage(
211
+ this.contentGeneratorConfig.modalities?.image ? message : flattenContentParts(message)
212
+ )
213
+ );
214
214
  return {
215
215
  ...reshaped,
216
216
  messages
@@ -1061,7 +1061,7 @@ var StreamContentError = class extends Error {
1061
1061
  var StreamInactivityTimeoutError = class extends Error {
1062
1062
  constructor(idleMs, chunksReceived, streamLifetimeMs) {
1063
1063
  super(
1064
- `No stream activity for ${idleMs}ms after ${chunksReceived} chunks (stream lifetime: ${streamLifetimeMs}ms). Set ${QWEN_STREAM_IDLE_TIMEOUT_MS_ENV} to increase this window (or 0 to disable it).`
1064
+ `No stream activity for ${idleMs}ms after ${chunksReceived} chunks (stream lifetime: ${streamLifetimeMs}ms). For provider-backed models, increase modelProviders[providerId][].generationConfig.streamIdleTimeoutMs; provider configuration takes precedence, so model.generationConfig is ignored for those models. For runtime models, increase model.generationConfig.streamIdleTimeoutMs. Built-in Qwen OAuth models cannot be overridden via settings. Use ${QWEN_STREAM_IDLE_TIMEOUT_MS_ENV} for them or whenever no explicit value is active. Set the active value to 0 to disable it.`
1065
1065
  );
1066
1066
  this.idleMs = idleMs;
1067
1067
  this.chunksReceived = chunksReceived;
@@ -1299,11 +1299,11 @@ var ContentGenerationPipeline = class {
1299
1299
  }
1300
1300
  );
1301
1301
  reportOpenAiResponse(telemetryAttempt, openaiResponse);
1302
- const geminiResponse = OpenAIContentConverter.convertOpenAIResponseToGemini(
1302
+ const llmResponse = OpenAIContentConverter.convertOpenAIResponseToLlm(
1303
1303
  openaiResponse,
1304
1304
  context
1305
1305
  );
1306
- return geminiResponse;
1306
+ return llmResponse;
1307
1307
  } finally {
1308
1308
  perRequestAc?.abort();
1309
1309
  }
@@ -1424,7 +1424,7 @@ var ContentGenerationPipeline = class {
1424
1424
  const errorContent = chunk.choices?.[0]?.delta?.content?.trim() || "Unknown stream error";
1425
1425
  throw new StreamContentError(errorContent);
1426
1426
  }
1427
- const response = OpenAIContentConverter.convertOpenAIChunkToGemini(
1427
+ const response = OpenAIContentConverter.convertOpenAIChunkToLlm(
1428
1428
  chunk,
1429
1429
  context
1430
1430
  );
@@ -1583,7 +1583,7 @@ var ContentGenerationPipeline = class {
1583
1583
  return true;
1584
1584
  }
1585
1585
  async buildRequest(request, userPromptId, context, isStreaming) {
1586
- const messages = OpenAIContentConverter.convertGeminiRequestToOpenAI(
1586
+ const messages = OpenAIContentConverter.convertLlmRequestToOpenAI(
1587
1587
  request,
1588
1588
  context
1589
1589
  );
@@ -1600,7 +1600,7 @@ var ContentGenerationPipeline = class {
1600
1600
  baseRequest.stream = false;
1601
1601
  }
1602
1602
  if (request.config?.tools && request.config.tools.length > 0) {
1603
- baseRequest.tools = await OpenAIContentConverter.convertGeminiToolsToOpenAI(
1603
+ baseRequest.tools = await OpenAIContentConverter.convertLlmToolsToOpenAI(
1604
1604
  request.config.tools,
1605
1605
  this.contentGeneratorConfig.schemaCompliance ?? "auto"
1606
1606
  );