@qwen-code/qwen-code 0.22.1 → 0.22.2-nightly.20260828.7357136dd1

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 (418) hide show
  1. package/bundled/goal-draft/SKILL.md +109 -0
  2. package/bundled/qc-helper/docs/configuration/settings.md +13 -13
  3. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  4. package/bundled/qc-helper/docs/features/channels/overview.md +34 -3
  5. package/bundled/qc-helper/docs/features/code-review.md +3 -3
  6. package/bundled/qc-helper/docs/features/commands.md +2 -1
  7. package/bundled/qc-helper/docs/features/goals.md +58 -0
  8. package/bundled/qc-helper/docs/features/headless.md +13 -11
  9. package/bundled/qc-helper/docs/features/status-line.md +3 -3
  10. package/bundled/review/SKILL.md +70 -22
  11. package/bundled/review/references/persistence.md +7 -3
  12. package/bundled/review/references/posting.md +2 -0
  13. package/chunks/MaxSizedBox-LMWXCLDV.js +110 -0
  14. package/chunks/{StandaloneSessionPicker-XF2TVJFK.js → StandaloneSessionPicker-W3F7U3JL.js} +79 -81
  15. package/chunks/{acpAgent-GY53MJIW.js → acpAgent-EYZ6EEHD.js} +1132 -339
  16. package/chunks/{agent-7U6CC5KF.js → agent-RBLGBY65.js} +44 -46
  17. package/chunks/agent-headless-L5T4Y4OZ.js +85 -0
  18. package/chunks/{anthropicContentGenerator-U76GTVB6.js → anthropicContentGenerator-GMHML35Q.js} +10 -11
  19. package/chunks/{artifact-tool-XDJCZZCF.js → artifact-tool-XSMPHZBT.js} +11 -3
  20. package/chunks/{askUserQuestion-ZXXERLEV.js → askUserQuestion-4SWJY65V.js} +2 -2
  21. package/chunks/bridge-5LR2F2ND.js +119 -0
  22. package/chunks/{channel-management-service-HXXS3HOZ.js → channel-management-service-KHR3N6CH.js} +6 -6
  23. package/chunks/channel-settings-store-4FOAZW72.js +120 -0
  24. package/chunks/{channel-worker-group-EVDC2P4K.js → channel-worker-group-6NA6BBZV.js} +8 -7
  25. package/chunks/{channel-worker-manager-IJJZHGEI.js → channel-worker-manager-NEZ2J6RK.js} +10 -8
  26. package/chunks/{channel-worker-supervisor-YSKB5GVB.js → channel-worker-supervisor-FKU7DIHJ.js} +6 -5
  27. package/chunks/{chunk-7QGEJI7M.js → chunk-23RFD54N.js} +1 -1
  28. package/chunks/{chunk-LJP2BBMK.js → chunk-2SXSLSQE.js} +4 -4
  29. package/chunks/chunk-2TNL5KPM.js +49 -0
  30. package/chunks/chunk-335CJSNF.js +2320 -0
  31. package/chunks/chunk-36LGBEM6.js +130 -0
  32. package/chunks/{chunk-ZWKGZB2K.js → chunk-3JXM2CVW.js} +3 -3
  33. package/chunks/{chunk-ICWGPK23.js → chunk-3K6TUZHS.js} +7 -7
  34. package/chunks/{chunk-43C2II2G.js → chunk-3OOXT6CR.js} +5 -5
  35. package/chunks/{chunk-ILPXSKGQ.js → chunk-3WK3QDNV.js} +2 -2
  36. package/chunks/{chunk-2YDYDDE2.js → chunk-3XOKEVII.js} +3 -3
  37. package/chunks/chunk-3Y34Q3JV.js +1584 -0
  38. package/chunks/{chunk-ZLTEQYNC.js → chunk-42IDLQWS.js} +26 -20
  39. package/chunks/{chunk-5MK32KJV.js → chunk-454XFGH4.js} +3 -3
  40. package/chunks/chunk-4CMJKUND.js +95 -0
  41. package/chunks/{chunk-77TOMRBG.js → chunk-4K7KNVWH.js} +3 -3
  42. package/chunks/{chunk-V3GINY6K.js → chunk-4QHPPXK2.js} +16 -8
  43. package/chunks/{chunk-UCSV2IZW.js → chunk-62GQFYID.js} +3 -3
  44. package/chunks/{chunk-SLEWBQWM.js → chunk-6DIGWMGT.js} +2 -2
  45. package/chunks/{chunk-I6YW3T3W.js → chunk-6JCGO55P.js} +723 -3399
  46. package/chunks/{chunk-PVBT5QPD.js → chunk-6PJOTWAN.js} +1 -1
  47. package/chunks/{chunk-5Y2JCJAH.js → chunk-6W2IK5KC.js} +956 -17
  48. package/chunks/{chunk-A7X32SCT.js → chunk-6ZZBRRKQ.js} +5 -5
  49. package/chunks/{chunk-ELY4QVIB.js → chunk-7EQQR46F.js} +1 -1
  50. package/chunks/{chunk-4DCP3362.js → chunk-7GWQW5ID.js} +4 -4
  51. package/chunks/chunk-7J6OTNGO.js +424 -0
  52. package/chunks/{chunk-CITGRGCM.js → chunk-7TUBJBBJ.js} +4 -1
  53. package/chunks/{chunk-L436XFLJ.js → chunk-7VD6IPQM.js} +1 -1
  54. package/chunks/{chunk-E4I5MVBR.js → chunk-ABS25QER.js} +1 -1
  55. package/chunks/{chunk-2ZV3CZKI.js → chunk-AJGR6E6Z.js} +49 -32
  56. package/chunks/{chunk-HJOWQUE2.js → chunk-AU3MMVJF.js} +31 -14
  57. package/chunks/{chunk-I32QCIK7.js → chunk-AXC26UCQ.js} +1 -1
  58. package/chunks/{chunk-7AS7QX72.js → chunk-AY3BNYEQ.js} +1 -1
  59. package/chunks/{chunk-FVDQ5E67.js → chunk-B466ZSHZ.js} +3 -3
  60. package/chunks/{chunk-OI2DR6QB.js → chunk-B5OUL5EL.js} +2 -2
  61. package/chunks/{chunk-6US7BF3G.js → chunk-B5PHIJGI.js} +183 -5
  62. package/chunks/{chunk-5T4LWWNX.js → chunk-B7CDU2SL.js} +2 -2
  63. package/chunks/{chunk-4TPAG3O7.js → chunk-BFPESSTR.js} +1 -1
  64. package/chunks/{chunk-WBT3STGU.js → chunk-BKWNKLZB.js} +20 -20
  65. package/chunks/{chunk-73WFGVIZ.js → chunk-BOWFGCEU.js} +3 -3
  66. package/chunks/{chunk-EMGAVCBZ.js → chunk-BPAKYXQ3.js} +2 -2
  67. package/chunks/{chunk-IPQA4SR5.js → chunk-BWORX6FA.js} +1 -1
  68. package/chunks/{chunk-BKDAF7ES.js → chunk-BXDAPVQU.js} +2 -2
  69. package/chunks/{chunk-ZEADBZLO.js → chunk-C2X7KY45.js} +3 -3
  70. package/chunks/{chunk-T2HMXHYA.js → chunk-C3KURPP7.js} +6 -6
  71. package/chunks/{chunk-JUIJ3FXC.js → chunk-CAJTKR6W.js} +5 -5
  72. package/chunks/{chunk-2FN2HNTI.js → chunk-CFJY4DGX.js} +2 -2
  73. package/chunks/{chunk-DP7LABIB.js → chunk-CMHFCLBU.js} +1 -1
  74. package/chunks/{chunk-LRKMQPMD.js → chunk-CQH5KTKC.js} +1 -1
  75. package/chunks/{chunk-J7MLXFC5.js → chunk-CRKKHXTI.js} +185 -174
  76. package/chunks/{chunk-XNXWEGKB.js → chunk-CYAUBK46.js} +3 -3
  77. package/chunks/{chunk-JECO75XD.js → chunk-D5LUXLUH.js} +2 -2
  78. package/chunks/{chunk-SRGENTPF.js → chunk-DFDWJE6Z.js} +48 -31
  79. package/chunks/chunk-DJBQCO2E.js +842 -0
  80. package/chunks/{chunk-2CRNTW2B.js → chunk-DP4MWIM3.js} +2 -2
  81. package/chunks/{chunk-EB4VDXNI.js → chunk-DYXFD5RO.js} +182 -3
  82. package/chunks/{chunk-ODXCSIH5.js → chunk-E3XVSVKK.js} +26 -4
  83. package/chunks/{chunk-ZKAZP2ZG.js → chunk-EB6QRGHM.js} +3 -3
  84. package/chunks/{chunk-GNRVKN76.js → chunk-EKNBU2X7.js} +4 -4
  85. package/chunks/{chunk-3UZCLCXR.js → chunk-EKSCLBBF.js} +3 -3
  86. package/chunks/{chunk-624NHDGB.js → chunk-ERFDKH32.js} +11 -0
  87. package/chunks/chunk-EW5VVLJT.js +3525 -0
  88. package/chunks/{chunk-XYX474JQ.js → chunk-EWIQ3NAE.js} +2522 -2030
  89. package/chunks/{chunk-O5YGAEQS.js → chunk-FALBWZF4.js} +6 -6
  90. package/chunks/{chunk-GZJUCMH4.js → chunk-FEHMA4RO.js} +542 -654
  91. package/chunks/{chunk-2YEZNBSD.js → chunk-FMFBLTLY.js} +320 -86
  92. package/chunks/{chunk-MZS7GEC7.js → chunk-FTF2YIZ5.js} +1 -1
  93. package/chunks/{chunk-ZJG323IA.js → chunk-G6FECKTJ.js} +7 -5
  94. package/chunks/{chunk-6KS24S3X.js → chunk-GGNE3JAW.js} +1 -1
  95. package/chunks/{chunk-BQBUZDDH.js → chunk-H33EQVMG.js} +4 -4
  96. package/chunks/chunk-H72BQNM3.js +645 -0
  97. package/chunks/{chunk-5ZYZPDDF.js → chunk-HGIMWQVT.js} +30 -25
  98. package/chunks/{chunk-DCSAVGDJ.js → chunk-HOCJDUFY.js} +2 -2
  99. package/chunks/{chunk-MDZO5V2O.js → chunk-HPXV655A.js} +9 -7
  100. package/chunks/{chunk-7JPW6IYH.js → chunk-HVC3PNVC.js} +1 -1
  101. package/chunks/{chunk-2MHGD7EE.js → chunk-HYDJDQGJ.js} +1 -1
  102. package/chunks/{chunk-BDHLBR46.js → chunk-IB7FQJRY.js} +34 -11
  103. package/chunks/{chunk-E55H6BZ7.js → chunk-ICURCKIU.js} +1335 -119
  104. package/chunks/{chunk-PAJGKZAA.js → chunk-ISKH4QX3.js} +14 -12
  105. package/chunks/{chunk-3B5DCAQU.js → chunk-J6S24ZJE.js} +34 -34
  106. package/chunks/{chunk-AYVIGUUK.js → chunk-JB4JIVTJ.js} +1 -1
  107. package/chunks/{chunk-C4WBKZJT.js → chunk-JN4IWWMN.js} +4 -4
  108. package/chunks/{chunk-6HTMIKXZ.js → chunk-JUUBLSZU.js} +4 -4
  109. package/chunks/{chunk-T6OODF2U.js → chunk-JWALNCLT.js} +1 -1
  110. package/chunks/{chunk-SKNVVYIJ.js → chunk-K5KXUXWC.js} +3 -3
  111. package/chunks/{chunk-IRIX323G.js → chunk-KTJFDCX4.js} +2 -2
  112. package/chunks/{chunk-FK4H3V6S.js → chunk-LEFCFTEX.js} +6 -6
  113. package/chunks/{chunk-OQ6LTSX3.js → chunk-LEGTMYAE.js} +1 -1
  114. package/chunks/{chunk-NY3IJYAV.js → chunk-LLZA2IK3.js} +15 -9
  115. package/chunks/{chunk-5CI4AXDD.js → chunk-LNETQKBE.js} +4 -4
  116. package/chunks/{chunk-TOF4UZHH.js → chunk-LUEHOUHM.js} +3 -3
  117. package/chunks/{chunk-62PXFOK4.js → chunk-LVPZO674.js} +4 -4
  118. package/chunks/{chunk-EEQYTWGU.js → chunk-M4ORUPYI.js} +5 -5
  119. package/chunks/{chunk-GNMJNDZE.js → chunk-M6FOJXW3.js} +1 -1
  120. package/chunks/{chunk-MYLXL7F6.js → chunk-MAYHGRP4.js} +9 -9
  121. package/chunks/{chunk-K3LPAED5.js → chunk-MQM5PJML.js} +24 -4
  122. package/chunks/{chunk-SM7ZVKTF.js → chunk-MTJN7FOT.js} +7 -7
  123. package/chunks/{chunk-BGXZBI5B.js → chunk-N4X7G4J2.js} +2 -1
  124. package/chunks/{chunk-27ONXAFY.js → chunk-NIFYWDYN.js} +1 -1
  125. package/chunks/{chunk-IJVDHPKD.js → chunk-NU7RKEZR.js} +2 -2
  126. package/chunks/{chunk-R2ZJH3FV.js → chunk-NXMBRVMQ.js} +3 -3
  127. package/chunks/{chunk-JLGFGPZJ.js → chunk-OI4NY7RA.js} +2 -2
  128. package/chunks/{chunk-RRKNX553.js → chunk-PDQGMSZK.js} +1 -1
  129. package/chunks/{chunk-GTUKW3I6.js → chunk-PPKZ7JOE.js} +1 -1
  130. package/chunks/{chunk-SAH4BD2J.js → chunk-PQEISIKS.js} +67 -0
  131. package/chunks/{chunk-MW5AHWOZ.js → chunk-PWIGAMA4.js} +93 -14
  132. package/chunks/{chunk-WEGXPP5E.js → chunk-QFCDF5PL.js} +1 -1
  133. package/chunks/{chunk-EAV3TENS.js → chunk-QPTRRPZU.js} +44 -7
  134. package/chunks/{chunk-SQPOJ4ZI.js → chunk-RFI4YGMR.js} +21 -266
  135. package/chunks/{chunk-JVPFTDBK.js → chunk-RFIDDFAL.js} +1 -1
  136. package/chunks/chunk-RKFGE7JH.js +93 -0
  137. package/chunks/chunk-RNVFRIOO.js +275 -0
  138. package/chunks/{chunk-CPPYZHBN.js → chunk-RU7BK6B3.js} +1 -1
  139. package/chunks/{chunk-OT26ITEY.js → chunk-RVXDXY6I.js} +3 -3
  140. package/chunks/{chunk-W2WRNJKX.js → chunk-RWZB422L.js} +5 -5
  141. package/chunks/{chunk-6YAR6ZU3.js → chunk-RYNZQGXN.js} +19 -2
  142. package/chunks/{chunk-EKP3M4RF.js → chunk-SJ5ERAW3.js} +1 -1
  143. package/chunks/{chunk-DEYPMJPD.js → chunk-SMPR7SPO.js} +1 -1
  144. package/chunks/{chunk-3BV7TZNQ.js → chunk-SRZZY4IY.js} +3 -3
  145. package/chunks/{chunk-7CWEZQ6T.js → chunk-STUJ7IMZ.js} +0 -77
  146. package/chunks/{chunk-TKO4TLT6.js → chunk-SUX7HDNA.js} +3 -3
  147. package/chunks/{chunk-76WGY6LW.js → chunk-SVNO44PF.js} +3 -3
  148. package/chunks/{chunk-UX3IFLJM.js → chunk-SZLBBZH4.js} +150 -23
  149. package/chunks/{chunk-K63NK3KL.js → chunk-T2NKRHZZ.js} +13 -13
  150. package/chunks/{chunk-4K7NQDCG.js → chunk-T4EFG2P5.js} +18 -9
  151. package/chunks/{chunk-2NCVUT3C.js → chunk-TLHUNMO7.js} +4 -4
  152. package/chunks/{chunk-EC5BONC3.js → chunk-TPI7O7HR.js} +1 -1
  153. package/chunks/{chunk-ZXDM7DYV.js → chunk-TQHGJYR3.js} +2029 -616
  154. package/chunks/{chunk-T2CRBIDJ.js → chunk-TTX2JUE6.js} +1 -1
  155. package/chunks/{chunk-OX44MOAN.js → chunk-TW3E6YNO.js} +3 -3
  156. package/chunks/chunk-U54AYGEC.js +337 -0
  157. package/chunks/{chunk-2NNTE2ED.js → chunk-UHQFIS7N.js} +15 -0
  158. package/chunks/{chunk-KOJ6MHD5.js → chunk-UTLCH2FK.js} +1 -1
  159. package/chunks/{chunk-KCOXDRQL.js → chunk-UY3PBNY3.js} +17 -29
  160. package/chunks/{chunk-7DPKPBOQ.js → chunk-V2NDP3I4.js} +2 -2
  161. package/chunks/{chunk-47SIHHPL.js → chunk-V2QDDC5J.js} +19 -9
  162. package/chunks/{chunk-BVE5EMIG.js → chunk-V5J4J5TP.js} +2 -2
  163. package/chunks/{chunk-X2UOOG5V.js → chunk-VQUGEVGR.js} +1 -1
  164. package/chunks/{chunk-XJS54K4A.js → chunk-VTHREBQM.js} +2 -2
  165. package/chunks/{chunk-VMDURMFY.js → chunk-W6DUQ5GA.js} +11307 -10424
  166. package/chunks/{chunk-BX2BZPFJ.js → chunk-WALC5VJH.js} +4 -4
  167. package/chunks/{chunk-FPH6TXD3.js → chunk-WAOIHTJS.js} +1 -1
  168. package/chunks/{chunk-LI2HEMKO.js → chunk-WBHKK3CU.js} +4 -4
  169. package/chunks/{chunk-O3BUXIPM.js → chunk-WXEA74YB.js} +3 -3
  170. package/chunks/{chunk-NER3H7PI.js → chunk-X3ZRTCJD.js} +1 -1
  171. package/chunks/{chunk-YRLW2MSX.js → chunk-XBVNNDPK.js} +11 -4
  172. package/chunks/{chunk-VL4YX3FH.js → chunk-XF63PKEN.js} +1 -1
  173. package/chunks/{chunk-FN5C6C7G.js → chunk-XLLQJRAH.js} +190 -478
  174. package/chunks/{chunk-3FSBMAYD.js → chunk-XQFT3QUF.js} +1 -1
  175. package/chunks/{chunk-FJWICLG7.js → chunk-Y3QL45LS.js} +1 -1
  176. package/chunks/{chunk-IKN3IUJP.js → chunk-Y4TPOUEV.js} +17 -9
  177. package/chunks/{chunk-NVK4HJYQ.js → chunk-YRZX2PHA.js} +1 -1
  178. package/chunks/{chunk-2SERYG4T.js → chunk-YTDVNSUQ.js} +1 -1
  179. package/chunks/{chunk-KWFP3WV6.js → chunk-YWQ237GX.js} +4 -193
  180. package/chunks/{chunk-6E4WHQJV.js → chunk-ZTP35P4B.js} +1 -1
  181. package/chunks/{chunk-E6FGMDFQ.js → chunk-ZU4UDIWX.js} +19 -1
  182. package/chunks/config-utils-JVGAP34H.js +113 -0
  183. package/chunks/contextCommand-XDB7OSO7.js +106 -0
  184. package/chunks/{core-runtime-PKNQ63VL.js → core-runtime-XHYA2RH7.js} +59 -61
  185. package/chunks/{create-sub-session-RVHSWVAP.js → create-sub-session-23ITIELI.js} +3 -3
  186. package/chunks/{create-sub-session-PLGPY6TV.js → create-sub-session-MHYCFNCM.js} +163 -84
  187. package/chunks/{cron-create-IJGVR5R2.js → cron-create-KJ4IY6PP.js} +57 -10
  188. package/chunks/{cron-delete-4N5BI6GL.js → cron-delete-MBLQCAYY.js} +4 -4
  189. package/chunks/{cron-list-2CATIPUX.js → cron-list-DWH2PQ47.js} +4 -4
  190. package/chunks/{daemon-NAYK4XXU.js → daemon-K5XS42ID.js} +516 -3
  191. package/chunks/{daemon-git-worktree-guard-LDBJXH2U.js → daemon-git-worktree-guard-V3P5XLHB.js} +56 -58
  192. package/chunks/daemon-status-provider-KKU7ZTLM.js +117 -0
  193. package/chunks/daemon-trust-policy-TZGK34DW.js +112 -0
  194. package/chunks/{daemon-trust-policy-monitor-IGEJPHQ4.js → daemon-trust-policy-monitor-F23DD2M4.js} +62 -64
  195. package/chunks/deferred-core-runtime-LKLGBCGZ.js +114 -0
  196. package/chunks/{display-image-DR55LL6M.js → display-image-BE7I6ZB6.js} +5 -5
  197. package/chunks/{dist-DJBNNPLN.js → dist-4WXLCBDR.js} +1 -1
  198. package/chunks/{dist-TJUDJTCB.js → dist-5VXFRTWU.js} +280 -48
  199. package/chunks/{dist-6H6RZ5H6.js → dist-6BPYWHVD.js} +89 -65
  200. package/chunks/{dist-ZBVOXSKF.js → dist-GFN5DCBX.js} +74 -65
  201. package/chunks/{dist-SATKXKUR.js → dist-HZNT6GQS.js} +1 -1
  202. package/chunks/{dist-FVJZSIO4.js → dist-LVZCXVPF.js} +72 -20
  203. package/chunks/{dist-7CKN54NL.js → dist-N6W6E753.js} +71 -64
  204. package/chunks/{dist-4Q7NTUNB.js → dist-QDLFKWOL.js} +2 -2
  205. package/chunks/{dist-UQUFZDIY.js → dist-SWQMYP2Q.js} +18 -16
  206. package/chunks/earlyInputCapture-NERYFYTR.js +107 -0
  207. package/chunks/{edit-KSPVUEAS.js → edit-ACCATIXB.js} +45 -47
  208. package/chunks/{en-6MDBWMTG.js → en-YLXBXM4Z.js} +2 -1
  209. package/chunks/{enter-worktree-UOZ6ZTP7.js → enter-worktree-35QCAAFP.js} +7 -7
  210. package/chunks/{enterPlanMode-DZTABSKN.js → enterPlanMode-NEN6EPVM.js} +44 -46
  211. package/chunks/{environment-JXOSW25V.js → environment-CKWHBC5T.js} +58 -60
  212. package/chunks/errors-XTZPNQ77.js +113 -0
  213. package/chunks/{exit-worktree-G2QATUCV.js → exit-worktree-XQD6D543.js} +7 -7
  214. package/chunks/exitPlanMode-CY344X5J.js +83 -0
  215. package/chunks/{fast-path-EBS7NAVL.js → fast-path-YSOX4PAM.js} +5 -5
  216. package/chunks/{gemini-JELEKOVS.js → gemini-VQY2YCPH.js} +110 -108
  217. package/chunks/{geminiContentGenerator-I2CKP7XI.js → geminiContentGenerator-PAPXNIGU.js} +8 -8
  218. package/chunks/{glob-TDVEVPQZ.js → glob-GVCUSBBF.js} +44 -46
  219. package/chunks/{goal-tools-CNVXMSZD.js → goal-tools-5STK6OXW.js} +10 -8
  220. package/chunks/{grep-3NLSS32D.js → grep-5GPICQBU.js} +6 -6
  221. package/chunks/handleAutoUpdate-ZJPJN42W.js +109 -0
  222. package/chunks/i18n-BZYKOST7.js +124 -0
  223. package/chunks/{image-gen-63NN2H5N.js → image-gen-J6FDGUZP.js} +8 -10
  224. package/chunks/initializer-GO2C5HE3.js +113 -0
  225. package/chunks/installationInfo-WM2GXQZ6.js +107 -0
  226. package/chunks/{keychain-token-storage-3MGFRYGM.js → keychain-token-storage-37XPR34V.js} +2 -2
  227. package/chunks/list-ERDJB7PQ.js +116 -0
  228. package/chunks/{list-agents-EXRSHIDJ.js → list-agents-DI3YFTDT.js} +2 -2
  229. package/chunks/loadedSettingsAdapter-7JOCVOKV.js +110 -0
  230. package/chunks/{loggingContentGenerator-CZWUAHAI.js → loggingContentGenerator-3ONLU3BS.js} +321 -30
  231. package/chunks/{loop-wakeup-XBPB2BRO.js → loop-wakeup-XJFONSQ7.js} +5 -5
  232. package/chunks/{ls-WFONAND2.js → ls-3VAT2J7A.js} +4 -4
  233. package/chunks/{lsp-DUKPDUXN.js → lsp-5W7IRUBH.js} +2 -2
  234. package/chunks/{managed-npm-update-54W23SP5.js → managed-npm-update-TLRCC2GE.js} +57 -59
  235. package/chunks/mcp-2LH3QXR2.js +110 -0
  236. package/chunks/{monitor-A4J5QRGJ.js → monitor-P7LDAL4W.js} +44 -46
  237. package/chunks/nonInteractiveCli-E5T7PZ27.js +184 -0
  238. package/chunks/{notebook-edit-4ANFZON5.js → notebook-edit-F7KSG4WQ.js} +45 -47
  239. package/chunks/{openaiContentGenerator-JCCJJQZC.js → openaiContentGenerator-2EXCZUGN.js} +26 -28
  240. package/chunks/pidfile-P25DWA5Q.js +111 -0
  241. package/chunks/process-registry-OAEG6WGC.js +662 -0
  242. package/chunks/{processUtils-JJAR56SO.js → processUtils-PVDKBL35.js} +2 -2
  243. package/chunks/prompt-terminal-ledger-AJ7T7OIV.js +105 -0
  244. package/chunks/{qwenContentGenerator-5JM44ZSA.js → qwenContentGenerator-TBBRLWIT.js} +49 -51
  245. package/chunks/{qwenOAuth2-JIYAWXTW.js → qwenOAuth2-OF5WRBQT.js} +7 -9
  246. package/chunks/{read-file-N3E5DY7N.js → read-file-6IIY4RLJ.js} +13 -13
  247. package/chunks/{read-mcp-resource-7A7NFSFL.js → read-mcp-resource-XD257PGJ.js} +2 -2
  248. package/chunks/{record-artifact-CPJ4IJSD.js → record-artifact-VW23GS4F.js} +4 -4
  249. package/chunks/{report-findings-VFM5DENC.js → report-findings-XA3FJG3N.js} +5 -5
  250. package/chunks/{request-shutdown-AXVOFN5C.js → request-shutdown-BCLA3JV2.js} +7 -7
  251. package/chunks/resumeHistoryUtils-44IETXDY.js +118 -0
  252. package/chunks/ripGrep-E7ESZ7SS.js +39 -0
  253. package/chunks/{run-qwen-serve-IWGPZADI.js → run-qwen-serve-DXBCYW7V.js} +356 -331
  254. package/chunks/{runtime-I76HPFUE.js → runtime-RUSPD35D.js} +67 -69
  255. package/chunks/scheduled-tasks-DVRJZO6I.js +127 -0
  256. package/chunks/{scheduler-M6YL4K4I.js → scheduler-TDRB2NSY.js} +58 -60
  257. package/chunks/{sdk-exporters-http-XXSKBD2C.js → sdk-exporters-http-TTU2CHBU.js} +2 -2
  258. package/chunks/{sdk-impl-VPNBLV7I.js → sdk-impl-UUMVYMAL.js} +11 -5
  259. package/chunks/{send-message-A2GXDX3B.js → send-message-AJ4OCUBV.js} +25 -9
  260. package/chunks/serve-KITOM7OR.js +118 -0
  261. package/chunks/{server-TWXRRREO.js → server-THCOMUC2.js} +5476 -4771
  262. package/chunks/{session-IT5ZXU7A.js → session-XKR5MPXE.js} +105 -106
  263. package/chunks/session-pr-refresh-KRBH7KDA.js +278 -0
  264. package/chunks/{settings-IX5HOOCG.js → settings-YXZ4XBKK.js} +61 -63
  265. package/chunks/{shell-LZ55AAJB.js → shell-5FJ2DZ3W.js} +44 -46
  266. package/chunks/{skill-WSZ53D2R.js → skill-VMMJZ6CJ.js} +71 -26
  267. package/chunks/skill-settings-7SG4YA2W.js +118 -0
  268. package/chunks/spawnChannel-BPMIXRBI.js +112 -0
  269. package/chunks/standalone-update-QN5HFRIC.js +118 -0
  270. package/chunks/{startInteractiveUI-O6BI2OSA.js → startInteractiveUI-5A7RQFRP.js} +2902 -2289
  271. package/chunks/{syntheticOutput-5AJ444QT.js → syntheticOutput-ML43GEFN.js} +3 -3
  272. package/chunks/{task-create-CDJSOEQD.js → task-create-QN4LYRSE.js} +11 -11
  273. package/chunks/{task-list-BELMPA75.js → task-list-JPLGK45U.js} +5 -5
  274. package/chunks/{task-stop-U3S3KZG2.js → task-stop-CXEH5L2D.js} +2 -2
  275. package/chunks/{task-update-77VCFDDZ.js → task-update-IWEOJFV2.js} +11 -11
  276. package/chunks/{team-create-UF4TMQEH.js → team-create-HVGVUL2L.js} +44 -46
  277. package/chunks/{team-delete-YWFXX77L.js → team-delete-RZVVSGCY.js} +5 -5
  278. package/chunks/{team-plan-approval-U57NSR6C.js → team-plan-approval-S5A5FQWU.js} +44 -46
  279. package/chunks/terminal-image-renderer-SIVPPXDI.js +114 -0
  280. package/chunks/theme-manager-TA33UZZX.js +102 -0
  281. package/chunks/{todoWrite-435EO2CS.js → todoWrite-WDJNQEMW.js} +43 -25
  282. package/chunks/{tool-search-SV35UV72.js → tool-search-NX7IPDKP.js} +18 -18
  283. package/chunks/total-session-admission-PWXZBOVX.js +114 -0
  284. package/chunks/{trustedFolders-YKK67IP3.js → trustedFolders-V6Y4CU3F.js} +57 -59
  285. package/chunks/{update-relaunch-DX7LVA4P.js → update-relaunch-CGSX3R37.js} +5 -5
  286. package/chunks/updateCheck-T5O2WGIB.js +118 -0
  287. package/chunks/useAutoAcceptIndicator-ULBJJWPY.js +120 -0
  288. package/chunks/{validateNonInterActiveAuth-B26O4YJP.js → validateNonInterActiveAuth-E5S2JSRC.js} +101 -102
  289. package/chunks/{version-K5D7VJ4B.js → version-LS5JPU36.js} +1 -1
  290. package/chunks/{web-fetch-VFHZLLNZ.js → web-fetch-RLMFZTS3.js} +16 -18
  291. package/chunks/{web-search-AQE5A4J5.js → web-search-LMCIC4N5.js} +9 -11
  292. package/chunks/{workflow-XL6AEUZ7.js → workflow-JBXU3IGA.js} +128 -94
  293. package/chunks/workspace-providers-status-525ORQBH.js +114 -0
  294. package/chunks/{workspace-registration-store-I4U3V5LL.js → workspace-registration-store-7Y44R4LV.js} +1 -1
  295. package/chunks/workspace-registry-HS4RWUSQ.js +123 -0
  296. package/chunks/workspace-service-7PXDM6EB.js +129 -0
  297. package/chunks/workspace-skills-status-FMJGC2XI.js +113 -0
  298. package/chunks/{workspace-trust-reconciler-GJ466KCE.js → workspace-trust-reconciler-3YTWSQBY.js} +70 -70
  299. package/chunks/write-file-BVQRYQQO.js +88 -0
  300. package/chunks/{zh-TW-MV4FWFB6.js → zh-TW-RPTMRTHG.js} +2 -1
  301. package/chunks/{zh-X3WGU6SI.js → zh-UNY63FR3.js} +2 -1
  302. package/chunks/{zoom-image-NYJPC3NI.js → zoom-image-FGCELNS4.js} +13 -13
  303. package/cli.js +14 -14
  304. package/locales/en.js +2 -0
  305. package/locales/zh-TW.js +2 -0
  306. package/locales/zh.js +2 -0
  307. package/package.json +3 -3
  308. package/web-shell/assets/{abnfDiagram-VCTEODGH-yq7z7Anb.js → abnfDiagram-VCTEODGH-2XZDeWYO.js} +1 -1
  309. package/web-shell/assets/{arc-CbJO0xnT.js → arc-B6UgMh90.js} +1 -1
  310. package/web-shell/assets/{architectureDiagram-5GKGNRK7-CRh89421.js → architectureDiagram-5GKGNRK7-DZgNFeN1.js} +1 -1
  311. package/web-shell/assets/{blockDiagram-NRAW4CY4-C75KAhKv.js → blockDiagram-NRAW4CY4-DQ2wvBFN.js} +1 -1
  312. package/web-shell/assets/{c4Diagram-UCG6FXSJ-BzlMveFB.js → c4Diagram-UCG6FXSJ-DMmQMrc4.js} +1 -1
  313. package/web-shell/assets/channel-D_TyfiTx.js +1 -0
  314. package/web-shell/assets/{chunk-2Q5K7J3B-DA8QDX3a.js → chunk-2Q5K7J3B-C8Zh2e9y.js} +1 -1
  315. package/web-shell/assets/{chunk-5VM5RSS4-Bgu7gQ7Y.js → chunk-5VM5RSS4-C3LTenP8.js} +1 -1
  316. package/web-shell/assets/{chunk-F27PBJKO-BOew7pIK.js → chunk-F27PBJKO-CxABOc8n.js} +1 -1
  317. package/web-shell/assets/{chunk-G27WJ6UU-DHx1I-hO.js → chunk-G27WJ6UU-CD_JxHDC.js} +1 -1
  318. package/web-shell/assets/{chunk-JWPE2WC7-SarFW0WU.js → chunk-JWPE2WC7-BdmZPmce.js} +1 -1
  319. package/web-shell/assets/{chunk-LCL6LL3I-BLzP083Z.js → chunk-LCL6LL3I-80bcHmfK.js} +1 -1
  320. package/web-shell/assets/{chunk-POPQ4Y6H-Bmkv_iKm.js → chunk-POPQ4Y6H-CNpLZyQF.js} +1 -1
  321. package/web-shell/assets/{chunk-SVP7TREG-MPx9r1N2.js → chunk-SVP7TREG-CXlKgMv3.js} +1 -1
  322. package/web-shell/assets/{chunk-XXDRQBXY-Ck-09rKG.js → chunk-XXDRQBXY-CivyYyvL.js} +1 -1
  323. package/web-shell/assets/classDiagram-DTDB5LWJ-Bw_H3xMd.js +1 -0
  324. package/web-shell/assets/classDiagram-v2-JRS7N3AN-Bw_H3xMd.js +1 -0
  325. package/web-shell/assets/{cose-bilkent-JH36ORCC-DWm6lfOG.js → cose-bilkent-JH36ORCC-COAjRH3w.js} +1 -1
  326. package/web-shell/assets/{cynefin-OW5HDTMX-DcBUyr5R.js → cynefin-OW5HDTMX-DqU1JHO6.js} +1 -1
  327. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-Df8qmd_p.js → cynefinDiagram-5FMLGOSQ-BCLI1Bvj.js} +1 -1
  328. package/web-shell/assets/{dagre-3AP2YEHR-DDmGspD7.js → dagre-3AP2YEHR-DmAz8nqF.js} +1 -1
  329. package/web-shell/assets/{diagram-S7CK7UJ4-BK_qFvbi.js → diagram-S7CK7UJ4-Ck-5QLT5.js} +1 -1
  330. package/web-shell/assets/{diagram-UQ7AKVKN-Uw3AP_bi.js → diagram-UQ7AKVKN-C0ljX0mW.js} +1 -1
  331. package/web-shell/assets/{diagram-VSXAHHWV-CJOQKxY7.js → diagram-VSXAHHWV-DPgvT24v.js} +1 -1
  332. package/web-shell/assets/{diagram-VX7I27RA-DhdvZna5.js → diagram-VX7I27RA-D7hWr1LR.js} +1 -1
  333. package/web-shell/assets/{diagram-Z3DM3KII-edQU0nlP.js → diagram-Z3DM3KII-D59tlOta.js} +1 -1
  334. package/web-shell/assets/{ebnfDiagram-PWID7BFC-4kugBEsO.js → ebnfDiagram-PWID7BFC-CY2DDx00.js} +1 -1
  335. package/web-shell/assets/{erDiagram-SSCWMZ5O-BMkFivWO.js → erDiagram-SSCWMZ5O-AR4h8Q8k.js} +1 -1
  336. package/web-shell/assets/{flowDiagram-A5DVABFB-BM1ea8g-.js → flowDiagram-A5DVABFB-DbF0HqBz.js} +1 -1
  337. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-CXj_cKRf.js → ganttDiagram-EL5Y4UJY-J52mrIhc.js} +1 -1
  338. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-D0nEqwqu.js → gitGraphDiagram-WWUBYQGX-CcgMY5EV.js} +1 -1
  339. package/web-shell/assets/index-BjUg3vPr.css +5 -0
  340. package/web-shell/assets/index-CFwYYVFU.js +1873 -0
  341. package/web-shell/assets/{index-B6JN54Pd.js → index-MQs7l15A.js} +1 -1
  342. package/web-shell/assets/{infoDiagram-RXCK75RN-DF7aGGbQ.js → infoDiagram-RXCK75RN-Buu3ibp2.js} +1 -1
  343. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-CZYNX1lL.js → ishikawaDiagram-5VMMS53U-CoKQxnF3.js} +1 -1
  344. package/web-shell/assets/{journeyDiagram-EYS64GPL-CvrqMUz1.js → journeyDiagram-EYS64GPL-CxK35mTC.js} +1 -1
  345. package/web-shell/assets/{kanban-definition-3QL26DDD-BZNJQZBj.js → kanban-definition-3QL26DDD-tk2CHTQ1.js} +1 -1
  346. package/web-shell/assets/{layout-Bf83x7D6.js → layout-DEpMwb4u.js} +1 -1
  347. package/web-shell/assets/{linear-Bkc3ES2f.js → linear-DSQsLh53.js} +1 -1
  348. package/web-shell/assets/{mermaid.core-C6xuovwz.js → mermaid.core-DIZuPBQT.js} +6 -6
  349. package/web-shell/assets/{mindmap-definition-FBJOCRG2-DzH6gVRg.js → mindmap-definition-FBJOCRG2-CCAvk8r_.js} +1 -1
  350. package/web-shell/assets/{pegDiagram-XKGWAZYB-DCvLh2fa.js → pegDiagram-XKGWAZYB-CpJ28jxz.js} +1 -1
  351. package/web-shell/assets/{pieDiagram-E7YTZNPT-BtjVlx_6.js → pieDiagram-E7YTZNPT-ziJR2R32.js} +1 -1
  352. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-IbroqxFe.js → quadrantDiagram-AXDQQJYC-B60zE3Mh.js} +1 -1
  353. package/web-shell/assets/{railroadDiagram-O6MQD6OU-BvMykiWW.js → railroadDiagram-O6MQD6OU-M3GqQ_g1.js} +1 -1
  354. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-D-HHMyrh.js → requirementDiagram-EFPCY7ZU-ntCtYqTk.js} +1 -1
  355. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-C0XXhB6d.js → sankeyDiagram-P5KCCOFB-AYLoItcZ.js} +1 -1
  356. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-DseAXj5d.js → sequenceDiagram-WJ2MYXX4-DEWk4Mlj.js} +1 -1
  357. package/web-shell/assets/{sizeCapture-X5ZJPWSS-Cek2EweK.js → sizeCapture-X5ZJPWSS-OOWvzPay.js} +1 -1
  358. package/web-shell/assets/{stateDiagram-HBIQ2CUA-yLv8wafW.js → stateDiagram-HBIQ2CUA-BcMmvxem.js} +1 -1
  359. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DRLLqPWO.js +1 -0
  360. package/web-shell/assets/{swimlanes-XN3QIQJK-Cwz-opvE.js → swimlanes-XN3QIQJK-DuZTWWvh.js} +1 -1
  361. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-DOfLQQYt.js +8 -0
  362. package/web-shell/assets/{timeline-definition-24CTP7MA-BJuFD7OG.js → timeline-definition-24CTP7MA-CjqtZXEd.js} +1 -1
  363. package/web-shell/assets/{vennDiagram-4TSXK5OY-CNAavdoV.js → vennDiagram-4TSXK5OY-knVCVkQ4.js} +1 -1
  364. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-DaIjAidq.js → wardleyDiagram-VM6X3IG4-yoWhw0a2.js} +1 -1
  365. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-DkcQXjTy.js → xychartDiagram-S5SC5T6Z-ue14E_gL.js} +1 -1
  366. package/web-shell/index.html +3 -3
  367. package/chunks/MaxSizedBox-UUTUE42J.js +0 -112
  368. package/chunks/agent-headless-32O4L2CT.js +0 -87
  369. package/chunks/bridge-DFX2FFH4.js +0 -119
  370. package/chunks/channel-settings-store-ELLH2M4M.js +0 -117
  371. package/chunks/chunk-I6VVOZDK.js +0 -202
  372. package/chunks/chunk-JS73NNWF.js +0 -30
  373. package/chunks/chunk-K2OJUPOE.js +0 -78
  374. package/chunks/chunk-P3QQPMQA.js +0 -19
  375. package/chunks/chunk-SDVF6A42.js +0 -945
  376. package/chunks/chunk-VGHZT6JR.js +0 -51
  377. package/chunks/config-utils-7M6PCTLT.js +0 -113
  378. package/chunks/contextCommand-G4QG3TW6.js +0 -108
  379. package/chunks/daemon-status-provider-F5FEHVVG.js +0 -118
  380. package/chunks/daemon-trust-policy-C6YTU5CQ.js +0 -114
  381. package/chunks/deferred-core-runtime-GHT3GDOR.js +0 -116
  382. package/chunks/earlyInputCapture-HOSJTLWP.js +0 -109
  383. package/chunks/errors-IOXFDE4J.js +0 -115
  384. package/chunks/exitPlanMode-PZG4FXRB.js +0 -85
  385. package/chunks/handleAutoUpdate-AWAGHKOX.js +0 -111
  386. package/chunks/i18n-CYA25C5F.js +0 -126
  387. package/chunks/initializer-JD2FLNLO.js +0 -115
  388. package/chunks/installationInfo-N3DCWVWR.js +0 -109
  389. package/chunks/list-XDQAUET5.js +0 -118
  390. package/chunks/loadedSettingsAdapter-IK7H5JRK.js +0 -112
  391. package/chunks/mcp-2E7ZLMEE.js +0 -112
  392. package/chunks/nonInteractiveCli-ZNDXB62Y.js +0 -185
  393. package/chunks/pidfile-DHV2Y7UD.js +0 -113
  394. package/chunks/process-registry-PMJOA5CO.js +0 -172
  395. package/chunks/prompt-terminal-ledger-LDZ6QVYA.js +0 -107
  396. package/chunks/resumeHistoryUtils-YQRITQAG.js +0 -120
  397. package/chunks/ripGrep-NEIHKBKB.js +0 -39
  398. package/chunks/serve-XY5S63GN.js +0 -120
  399. package/chunks/skill-settings-5U7FTJIK.js +0 -120
  400. package/chunks/spawnChannel-TMC6VXGN.js +0 -113
  401. package/chunks/standalone-update-CUYGWTR4.js +0 -120
  402. package/chunks/terminal-image-renderer-DRL3BROJ.js +0 -116
  403. package/chunks/theme-manager-HHJPUDRN.js +0 -104
  404. package/chunks/total-session-admission-TQI7TCTL.js +0 -114
  405. package/chunks/updateCheck-6JRTKTUF.js +0 -120
  406. package/chunks/useAutoAcceptIndicator-MYXYSKSL.js +0 -122
  407. package/chunks/workspace-providers-status-H6TG34YV.js +0 -116
  408. package/chunks/workspace-registry-2PWNIYNI.js +0 -123
  409. package/chunks/workspace-service-4FGTUJLA.js +0 -131
  410. package/chunks/workspace-skills-status-7VOLUDT6.js +0 -115
  411. package/chunks/write-file-PWOYCT2K.js +0 -90
  412. package/web-shell/assets/channel-B3sGR79J.js +0 -1
  413. package/web-shell/assets/classDiagram-DTDB5LWJ-sTGo0K3v.js +0 -1
  414. package/web-shell/assets/classDiagram-v2-JRS7N3AN-sTGo0K3v.js +0 -1
  415. package/web-shell/assets/index-C-XlQn24.css +0 -5
  416. package/web-shell/assets/index-DLjXM0dn.js +0 -1860
  417. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DeThXnol.js +0 -1
  418. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-GW0R1ZSv.js +0 -8
@@ -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,13 +2,13 @@
2
2
  "use strict";
3
3
  import {
4
4
  getRateLimitErrorDetails
5
- } from "./chunk-EB4VDXNI.js";
5
+ } from "./chunk-DYXFD5RO.js";
6
6
  import {
7
7
  isInternalPromptId
8
- } from "./chunk-UX3IFLJM.js";
8
+ } from "./chunk-SZLBBZH4.js";
9
9
  import {
10
10
  createDebugLogger
11
- } from "./chunk-2NNTE2ED.js";
11
+ } from "./chunk-UHQFIS7N.js";
12
12
  import {
13
13
  init_esbuild_shims
14
14
  } from "./chunk-5O2XNYP6.js";
@@ -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
  */
@@ -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,25 +2,26 @@
2
2
  "use strict";
3
3
  import {
4
4
  t
5
- } from "./chunk-W2WRNJKX.js";
5
+ } from "./chunk-RWZB422L.js";
6
6
  import {
7
7
  computeThresholds,
8
+ estimateContextTextTokens,
8
9
  formatContextFileDisplayPath,
9
10
  getMainSessionBaseSystemPrompt
10
- } from "./chunk-XYX474JQ.js";
11
+ } from "./chunk-EWIQ3NAE.js";
11
12
  import {
12
13
  DiscoveredMCPTool,
13
14
  uiTelemetryService
14
- } from "./chunk-UX3IFLJM.js";
15
+ } from "./chunk-SZLBBZH4.js";
15
16
  import {
16
17
  DEFAULT_TOKEN_LIMIT
17
18
  } from "./chunk-FPGTNKCP.js";
18
19
  import {
19
20
  buildSkillLlmContent
20
- } from "./chunk-E6FGMDFQ.js";
21
+ } from "./chunk-ZU4UDIWX.js";
21
22
  import {
22
23
  ToolNames
23
- } from "./chunk-KOJ6MHD5.js";
24
+ } from "./chunk-UTLCH2FK.js";
24
25
  import {
25
26
  init_esbuild_shims
26
27
  } from "./chunk-5O2XNYP6.js";
@@ -38,21 +39,6 @@ function currentTier(tokens, thresholds) {
38
39
  return "safe";
39
40
  }
40
41
  __name(currentTier, "currentTier");
41
- function estimateTokens(text) {
42
- if (!text || text.length === 0) return 0;
43
- let asciiChars = 0;
44
- let nonAsciiChars = 0;
45
- for (let i = 0; i < text.length; i++) {
46
- const charCode = text.charCodeAt(i);
47
- if (charCode < 128) {
48
- asciiChars++;
49
- } else {
50
- nonAsciiChars++;
51
- }
52
- }
53
- return Math.ceil(asciiChars / 4 + nonAsciiChars * 1.5);
54
- }
55
- __name(estimateTokens, "estimateTokens");
56
42
  function parseMemoryFiles(memoryContent, workingDir) {
57
43
  if (!memoryContent || memoryContent.trim().length === 0) return [];
58
44
  const results = [];
@@ -70,13 +56,13 @@ function parseMemoryFiles(memoryContent, workingDir) {
70
56
  path.resolve(workingDir, filePath),
71
57
  workingDir
72
58
  ),
73
- tokens: estimateTokens(content)
59
+ tokens: estimateContextTextTokens(content)
74
60
  });
75
61
  }
76
62
  if (results.length === 0 && memoryContent.trim().length > 0) {
77
63
  results.push({
78
64
  path: t("memory"),
79
- tokens: estimateTokens(memoryContent)
65
+ tokens: estimateContextTextTokens(memoryContent)
80
66
  });
81
67
  }
82
68
  return results;
@@ -91,12 +77,12 @@ async function collectContextData(config, showDetails) {
91
77
  const apiTotalTokens = activeChat ? activeChat.getLastPromptTokenCount() : uiTelemetryService.getLastPromptTokenCount();
92
78
  const apiCachedTokens = uiTelemetryService.getLastCachedContentTokenCount();
93
79
  const systemPromptText = getMainSessionBaseSystemPrompt(config);
94
- const systemPromptTokens = estimateTokens(systemPromptText);
80
+ const systemPromptTokens = estimateContextTextTokens(systemPromptText);
95
81
  const toolRegistry = config.getToolRegistry();
96
82
  const allTools = toolRegistry ? toolRegistry.getAllTools() : [];
97
83
  const toolDeclarations = toolRegistry ? toolRegistry.getFunctionDeclarations() : [];
98
84
  const toolsJsonStr = JSON.stringify(toolDeclarations);
99
- const allToolsTokens = estimateTokens(toolsJsonStr);
85
+ const allToolsTokens = estimateContextTextTokens(toolsJsonStr);
100
86
  const builtinTools = [];
101
87
  const mcpTools = [];
102
88
  for (const tool of allTools) {
@@ -104,7 +90,7 @@ async function collectContextData(config, showDetails) {
104
90
  continue;
105
91
  }
106
92
  const toolJsonStr = JSON.stringify(tool.schema);
107
- const tokens = estimateTokens(toolJsonStr);
93
+ const tokens = estimateContextTextTokens(toolJsonStr);
108
94
  if (tool instanceof DiscoveredMCPTool) {
109
95
  mcpTools.push({
110
96
  name: `${tool.serverName}__${tool.serverToolName || tool.name}`,
@@ -123,19 +109,19 @@ async function collectContextData(config, showDetails) {
123
109
  if (autoMemoryPrompt) {
124
110
  memoryFiles.push({
125
111
  path: t("auto memory"),
126
- tokens: estimateTokens(autoMemoryPrompt)
112
+ tokens: estimateContextTextTokens(autoMemoryPrompt)
127
113
  });
128
114
  }
129
115
  const memoryFilesTokens = memoryFiles.reduce((sum, f) => sum + f.tokens, 0);
130
116
  const skillTool = allTools.find((tool) => tool.name === ToolNames.SKILL);
131
- const skillToolDefinitionTokens = skillTool ? estimateTokens(JSON.stringify(skillTool.schema)) : 0;
117
+ const skillToolDefinitionTokens = skillTool ? estimateContextTextTokens(JSON.stringify(skillTool.schema)) : 0;
132
118
  const loadedSkillNames = skillTool && "getLoadedSkillNames" in skillTool ? skillTool.getLoadedSkillNames() : /* @__PURE__ */ new Set();
133
119
  const skillManager = config.getSkillManager();
134
120
  const skillConfigs = skillManager ? await skillManager.listSkills() : [];
135
121
  const disabledSkillNames = config.getDisabledSkillNames();
136
122
  let loadedBodiesTokens = 0;
137
123
  const skills = skillConfigs.map((skill) => {
138
- const listingTokens = estimateTokens(
124
+ const listingTokens = estimateContextTextTokens(
139
125
  `<skill>
140
126
  <name>
141
127
  ${skill.name}
@@ -152,7 +138,9 @@ ${skill.level}
152
138
  let bodyTokens;
153
139
  if (isLoaded && skill.body) {
154
140
  const baseDir = skill.filePath ? skill.filePath.replace(/\/[^/]+$/, "") : "";
155
- bodyTokens = estimateTokens(buildSkillLlmContent(baseDir, skill.body));
141
+ bodyTokens = estimateContextTextTokens(
142
+ buildSkillLlmContent(baseDir, skill.body)
143
+ );
156
144
  loadedBodiesTokens += bodyTokens;
157
145
  }
158
146
  return {
@@ -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";
@@ -6,11 +6,12 @@ import {
6
6
  OFFICE_DOCUMENT_EXTENSIONS,
7
7
  hasControlCharacter,
8
8
  hasUnsafeDisplayPayload,
9
+ pathHasSkippedDirectoryComponent,
9
10
  toCanonicalWorkspaceArtifactPath
10
- } from "./chunk-SKNVVYIJ.js";
11
+ } from "./chunk-K5KXUXWC.js";
11
12
  import {
12
13
  checkTeamMemorySecrets
13
- } from "./chunk-XJS54K4A.js";
14
+ } from "./chunk-VTHREBQM.js";
14
15
  import {
15
16
  CommitAttributionService,
16
17
  FileEncoding,
@@ -19,27 +20,27 @@ import {
19
20
  detectLineEnding,
20
21
  getDiffStat,
21
22
  needsUtf8Bom
22
- } from "./chunk-XYX474JQ.js";
23
+ } from "./chunk-EWIQ3NAE.js";
23
24
  import {
24
25
  FileOperationEvent,
25
26
  getLanguageFromFilePath,
26
27
  logFileOperation
27
- } from "./chunk-UX3IFLJM.js";
28
+ } from "./chunk-SZLBBZH4.js";
28
29
  import {
29
30
  fileExists,
30
31
  getSpecificMimeType
31
- } from "./chunk-WBT3STGU.js";
32
+ } from "./chunk-BKWNKLZB.js";
32
33
  import {
33
34
  isAnyAutoMemPath,
34
35
  isTeamAutoMemPath
35
- } from "./chunk-PVBT5QPD.js";
36
+ } from "./chunk-6PJOTWAN.js";
36
37
  import {
37
38
  BaseDeclarativeTool,
38
39
  BaseToolInvocation,
39
40
  StructuredToolError,
40
41
  ToolDisplayNames,
41
42
  ToolNames
42
- } from "./chunk-KOJ6MHD5.js";
43
+ } from "./chunk-UTLCH2FK.js";
43
44
  import {
44
45
  createDebugLogger,
45
46
  getErrorMessage,
@@ -47,7 +48,7 @@ import {
47
48
  makeRelative,
48
49
  shortenPath,
49
50
  unescapePath
50
- } from "./chunk-2NNTE2ED.js";
51
+ } from "./chunk-UHQFIS7N.js";
51
52
  import {
52
53
  init_esbuild_shims
53
54
  } from "./chunk-5O2XNYP6.js";
@@ -376,7 +377,7 @@ var WriteFileToolInvocation = class extends BaseToolInvocation {
376
377
  `User modified the \`content\` to be: ${content}`
377
378
  );
378
379
  }
379
- const artifact = buildWorkspaceArtifactMetadata(
380
+ const artifact = this.params.record_as_artifact === false ? null : buildWorkspaceArtifactMetadata(
380
381
  this.config,
381
382
  file_path,
382
383
  postWriteSizeBytes
@@ -498,6 +499,9 @@ function resolveRecordedWorkspaceFile(config, filePath) {
498
499
  if (!workspacePath) {
499
500
  return null;
500
501
  }
502
+ if (pathHasSkippedDirectoryComponent(workspacePath)) {
503
+ return null;
504
+ }
501
505
  return { filePath: resolvedFile, workspacePath };
502
506
  }
503
507
  __name(resolveRecordedWorkspaceFile, "resolveRecordedWorkspaceFile");
@@ -512,6 +516,8 @@ var WriteFileTool = class _WriteFileTool extends BaseDeclarativeTool {
512
516
  ToolDisplayNames.WRITE_FILE,
513
517
  `Writes content to a specified file in the local filesystem. A request to create or generate a file does not establish that the target path is new. Unless the target's absence or current text contents have already been established in this session, you MUST use the ${ToolNames.READ_FILE} tool first; if the file does not exist, then create it. With prior-read enforcement enabled, blind overwrites are rejected. The file_path argument MUST be an absolute path. Always construct it by combining the project root with the file's relative path (e.g. project root '/path/to/project/' + relative 'foo/bar.txt' = '/path/to/project/foo/bar.txt'). If the user provides a relative path, resolve it against the project root first.
514
518
 
519
+ Artifact-like files such as HTML, PDF, images, notebooks, and office documents are automatically registered as session artifacts. Intermediate files that exist only to produce another artifact \u2014 for example HTML written solely to print a PDF \u2014 must set record_as_artifact=false, or be written under .qwen/tmp/ so they are not registered. Delete those intermediates when done.
520
+
515
521
  The user has the ability to modify \`content\`. If modified, this will be stated in the response.`,
516
522
  "edit" /* Edit */,
517
523
  {
@@ -523,6 +529,10 @@ The user has the ability to modify \`content\`. If modified, this will be stated
523
529
  content: {
524
530
  description: "The content to write to the file.",
525
531
  type: "string"
532
+ },
533
+ record_as_artifact: {
534
+ description: "Set false for intermediate files that should not appear as session artifacts, such as HTML used only to print a PDF. Defaults to true for artifact-like extensions.",
535
+ type: "boolean"
526
536
  }
527
537
  },
528
538
  required: ["file_path", "content"],
@@ -2,14 +2,14 @@
2
2
  "use strict";
3
3
  import {
4
4
  getCurrentAgentId
5
- } from "./chunk-DP7LABIB.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";
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  TotalSessionLimitExceededError,
5
5
  WorkspaceDrainingError
6
- } from "./chunk-624NHDGB.js";
6
+ } from "./chunk-ERFDKH32.js";
7
7
  import {
8
8
  init_esbuild_shims
9
9
  } from "./chunk-5O2XNYP6.js";
@@ -2,10 +2,10 @@
2
2
  "use strict";
3
3
  import {
4
4
  isTeamAutoMemPath
5
- } from "./chunk-PVBT5QPD.js";
5
+ } from "./chunk-6PJOTWAN.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";