@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
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-3SH53ANB.js";
6
6
  import {
7
7
  theme
8
- } from "./chunk-FPH6TXD3.js";
8
+ } from "./chunk-WAOIHTJS.js";
9
9
  import {
10
10
  require_jsx_runtime
11
11
  } from "./chunk-SV5PQVQE.js";
@@ -14,17 +14,17 @@ import {
14
14
  Text,
15
15
  use_is_screen_reader_enabled_default
16
16
  } from "./chunk-5Q372OFJ.js";
17
- import {
18
- collectInlineImages,
19
- extractInlineContentRuns
20
- } from "./chunk-EC5BONC3.js";
21
17
  import {
22
18
  require_react
23
19
  } from "./chunk-5QWWOFGG.js";
20
+ import {
21
+ collectInlineImages,
22
+ extractInlineContentRuns
23
+ } from "./chunk-TPI7O7HR.js";
24
24
  import {
25
25
  formatHistoryGapNotice,
26
26
  indexGapsByChild
27
- } from "./chunk-L436XFLJ.js";
27
+ } from "./chunk-7VD6IPQM.js";
28
28
  import {
29
29
  stringWidth
30
30
  } from "./chunk-2MIN6GRR.js";
@@ -33,24 +33,26 @@ import {
33
33
  } from "./chunk-QHTIBUWB.js";
34
34
  import {
35
35
  t
36
- } from "./chunk-W2WRNJKX.js";
36
+ } from "./chunk-RWZB422L.js";
37
37
  import {
38
38
  isGoalCheckpointBookkeepingRecord
39
- } from "./chunk-VMDURMFY.js";
39
+ } from "./chunk-W6DUQ5GA.js";
40
40
  import {
41
41
  getToolResponseDisplayText
42
- } from "./chunk-XYX474JQ.js";
42
+ } from "./chunk-EWIQ3NAE.js";
43
43
  import {
44
44
  stripAnsi
45
45
  } from "./chunk-TWPJO254.js";
46
46
  import {
47
47
  GoalPersistenceUnavailableError,
48
- parseGoalStateRecordPayloadV2,
48
+ parseGoalStateRecordPayloadV2
49
+ } from "./chunk-XLLQJRAH.js";
50
+ import {
49
51
  projectUserTranscriptForDisplay
50
- } from "./chunk-FN5C6C7G.js";
52
+ } from "./chunk-7J6OTNGO.js";
51
53
  import {
52
54
  ToolDisplayNames
53
- } from "./chunk-KOJ6MHD5.js";
55
+ } from "./chunk-UTLCH2FK.js";
54
56
  import {
55
57
  init_esbuild_shims
56
58
  } from "./chunk-5O2XNYP6.js";
@@ -2423,7 +2425,7 @@ var ICON = {
2423
2425
  // packages/cli/src/ui/components/shared/ToolStatusIndicator.tsx
2424
2426
  init_esbuild_shims();
2425
2427
 
2426
- // packages/cli/src/ui/components/GeminiRespondingSpinner.tsx
2428
+ // packages/cli/src/ui/components/RespondingSpinner.tsx
2427
2429
  init_esbuild_shims();
2428
2430
  var import_react3 = __toESM(require_react(), 1);
2429
2431
 
@@ -2473,27 +2475,24 @@ var SCREEN_READER_MODEL_PREFIX = "Model: ";
2473
2475
  var SCREEN_READER_LOADING = "loading";
2474
2476
  var SCREEN_READER_RESPONDING = "responding";
2475
2477
 
2476
- // packages/cli/src/ui/components/GeminiRespondingSpinner.tsx
2478
+ // packages/cli/src/ui/components/RespondingSpinner.tsx
2477
2479
  var import_jsx_runtime = __toESM(require_jsx_runtime(), 1);
2478
2480
  var TMUX_SPINNER_INTERVAL_MS = 750;
2479
2481
  var TMUX_SPINNER_FRAMES = [". ", ".."];
2480
- var GeminiRespondingSpinner = /* @__PURE__ */ __name(({ nonRespondingDisplay, spinnerType = "dots" }) => {
2482
+ var RespondingSpinner = /* @__PURE__ */ __name(({
2483
+ nonRespondingDisplay,
2484
+ spinnerType = "dots"
2485
+ }) => {
2481
2486
  const streamingState = useStreamingContext();
2482
2487
  const isScreenReaderEnabled = use_is_screen_reader_enabled_default();
2483
2488
  if (streamingState === "responding" /* Responding */) {
2484
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
2485
- GeminiSpinner,
2486
- {
2487
- spinnerType,
2488
- altText: SCREEN_READER_RESPONDING
2489
- }
2490
- );
2489
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Spinner2, { spinnerType, altText: SCREEN_READER_RESPONDING });
2491
2490
  } else if (nonRespondingDisplay) {
2492
2491
  return isScreenReaderEnabled ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { children: SCREEN_READER_LOADING }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { color: theme.text.primary, children: nonRespondingDisplay });
2493
2492
  }
2494
2493
  return null;
2495
- }, "GeminiRespondingSpinner");
2496
- var GeminiSpinner = /* @__PURE__ */ __name(({
2494
+ }, "RespondingSpinner");
2495
+ var Spinner2 = /* @__PURE__ */ __name(({
2497
2496
  spinnerType = "dots",
2498
2497
  altText
2499
2498
  }) => {
@@ -2516,7 +2515,7 @@ var GeminiSpinner = /* @__PURE__ */ __name(({
2516
2515
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { color: theme.text.primary, children: TMUX_SPINNER_FRAMES[tmuxFrameIndex] });
2517
2516
  }
2518
2517
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Text, { color: theme.text.primary, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(build_default, { type: spinnerType }) });
2519
- }, "GeminiSpinner");
2518
+ }, "Spinner");
2520
2519
 
2521
2520
  // packages/cli/src/ui/components/shared/ToolStatusIndicator.tsx
2522
2521
  var import_jsx_runtime2 = (
@@ -2534,7 +2533,7 @@ var ToolStatusIndicator = /* @__PURE__ */ __name(({
2534
2533
  return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(Box_default, { minWidth: STATUS_INDICATOR_WIDTH, flexShrink: 0, children: [
2535
2534
  status === "Pending" /* Pending */ && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(Text, { color: theme.status.success, children: TOOL_STATUS.PENDING }),
2536
2535
  status === "Executing" /* Executing */ && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
2537
- GeminiRespondingSpinner,
2536
+ RespondingSpinner,
2538
2537
  {
2539
2538
  spinnerType: "toggle",
2540
2539
  nonRespondingDisplay: TOOL_STATUS.EXECUTING
@@ -2988,11 +2987,29 @@ function shouldDisplayGoalStateCause(cause) {
2988
2987
  }
2989
2988
  }
2990
2989
  __name(shouldDisplayGoalStateCause, "shouldDisplayGoalStateCause");
2991
- async function waitForGoalRuntime(config) {
2990
+ async function waitForGoalRuntime(config, options = {}) {
2991
+ const awaitReady = /* @__PURE__ */ __name(async () => {
2992
+ try {
2993
+ await config.getGoalRuntimeReady();
2994
+ } catch (error) {
2995
+ if (!(error instanceof GoalPersistenceUnavailableError)) throw error;
2996
+ }
2997
+ }, "awaitReady");
2998
+ const { timeoutMs } = options;
2999
+ if (timeoutMs == null || timeoutMs <= 0) {
3000
+ await awaitReady();
3001
+ return true;
3002
+ }
3003
+ let timer;
3004
+ const timeout = new Promise((resolve) => {
3005
+ timer = setTimeout(() => resolve("timeout"), timeoutMs);
3006
+ timer.unref?.();
3007
+ });
2992
3008
  try {
2993
- await config.getGoalRuntimeReady();
2994
- } catch (error) {
2995
- if (!(error instanceof GoalPersistenceUnavailableError)) throw error;
3009
+ const winner = await Promise.race([awaitReady(), timeout]);
3010
+ return winner !== "timeout";
3011
+ } finally {
3012
+ if (timer) clearTimeout(timer);
2996
3013
  }
2997
3014
  }
2998
3015
  __name(waitForGoalRuntime, "waitForGoalRuntime");
@@ -3481,8 +3498,8 @@ export {
3481
3498
  build_default,
3482
3499
  StreamingContext,
3483
3500
  useStreamingContext,
3484
- GeminiRespondingSpinner,
3485
- GeminiSpinner,
3501
+ RespondingSpinner,
3502
+ Spinner2 as Spinner,
3486
3503
  STATUS_INDICATOR_WIDTH,
3487
3504
  ToolStatusIndicator,
3488
3505
  ToolElapsedTime,
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-E7REAOTN.js";
6
6
  import {
7
7
  formatHistoryGapNotice
8
- } from "./chunk-L436XFLJ.js";
8
+ } from "./chunk-7VD6IPQM.js";
9
9
  import {
10
10
  loadUndici
11
11
  } from "./chunk-TXASDT2M.js";
@@ -14,26 +14,28 @@ import {
14
14
  } from "./chunk-OZ6KS6KW.js";
15
15
  import {
16
16
  projectGoalStateToLegacy
17
- } from "./chunk-VMDURMFY.js";
17
+ } from "./chunk-W6DUQ5GA.js";
18
18
  import {
19
19
  observeToolResultBoundary,
20
20
  toolResultBoundaryArtifact
21
- } from "./chunk-XYX474JQ.js";
21
+ } from "./chunk-EWIQ3NAE.js";
22
22
  import {
23
23
  parseGoalSnapshotV2,
24
- parseGoalStateCause,
24
+ parseGoalStateCause
25
+ } from "./chunk-XLLQJRAH.js";
26
+ import {
25
27
  projectUserTranscriptForDisplay
26
- } from "./chunk-FN5C6C7G.js";
28
+ } from "./chunk-7J6OTNGO.js";
27
29
  import {
28
30
  formatVisionBridgeNoticeDisplay,
29
31
  isVisionBridgeNoticeDisplay
30
- } from "./chunk-UX3IFLJM.js";
32
+ } from "./chunk-SZLBBZH4.js";
31
33
  import {
32
34
  ToolNames
33
- } from "./chunk-KOJ6MHD5.js";
35
+ } from "./chunk-UTLCH2FK.js";
34
36
  import {
35
37
  createDebugLogger
36
- } from "./chunk-2NNTE2ED.js";
38
+ } from "./chunk-UHQFIS7N.js";
37
39
  import {
38
40
  writeStderrLine,
39
41
  writeStderrLineSafe
@@ -288,7 +290,7 @@ var GOAL_CHECKPOINT_CLAIM_MAX_CHARACTERS = 2e3;
288
290
  var GOAL_CHECKPOINT_CLAIM_MAX_BYTES = 16e3;
289
291
  var GOAL_CHECKPOINT_SOURCE_REFERENCE_LIMIT = 32;
290
292
  function isGoalLimitKind(value) {
291
- return value === "evidence_catalog" || value === "checkpoint_request";
293
+ return value === "evidence_catalog" || value === "checkpoint_request" || value === "token_budget";
292
294
  }
293
295
  __name(isGoalLimitKind, "isGoalLimitKind");
294
296
  function isGoalEvidenceProofKind(value) {
@@ -375,13 +377,15 @@ function parseGoalRecord(value) {
375
377
  "turnCount",
376
378
  "activeTimeMs",
377
379
  "tokensUsed",
380
+ "tokenBudget",
381
+ "windDownTurnId",
378
382
  "createdAt",
379
383
  "updatedAt",
380
384
  "evidenceCheckpoint",
381
385
  "checkpointStalls",
382
386
  "lastReason",
383
387
  "limitKind"
384
- ]) || typeof value["goalId"] !== "string" || !value["goalId"] || !isNonNegativeInteger(value["revision"]) || value["revision"] === 0 || typeof value["objective"] !== "string" || !value["objective"].trim() || !isGoalStatus(value["status"]) || !isTranscriptCursor(value["evidenceCursor"]) || !isNonNegativeInteger(value["turnCount"]) || !isNonNegativeNumber(value["activeTimeMs"]) || value["tokensUsed"] !== void 0 && !isNonNegativeNumber(value["tokensUsed"]) || !isFiniteNumber(value["createdAt"]) || !isFiniteNumber(value["updatedAt"]) || !isGoalEvidenceCheckpoint(value["evidenceCheckpoint"]) || value["checkpointStalls"] !== void 0 && !isNonNegativeInteger(value["checkpointStalls"]) || value["lastReason"] !== void 0 && typeof value["lastReason"] !== "string" || value["limitKind"] !== void 0 && (!isGoalLimitKind(value["limitKind"]) || value["status"] !== "usage_limited")) {
388
+ ]) || typeof value["goalId"] !== "string" || !value["goalId"] || !isNonNegativeInteger(value["revision"]) || value["revision"] === 0 || typeof value["objective"] !== "string" || !value["objective"].trim() || !isGoalStatus(value["status"]) || !isTranscriptCursor(value["evidenceCursor"]) || !isNonNegativeInteger(value["turnCount"]) || !isNonNegativeNumber(value["activeTimeMs"]) || value["tokensUsed"] !== void 0 && !isNonNegativeNumber(value["tokensUsed"]) || value["tokenBudget"] !== void 0 && !isNonNegativeNumber(value["tokenBudget"]) || value["windDownTurnId"] !== void 0 && (typeof value["windDownTurnId"] !== "string" || !value["windDownTurnId"]) || !isFiniteNumber(value["createdAt"]) || !isFiniteNumber(value["updatedAt"]) || !isGoalEvidenceCheckpoint(value["evidenceCheckpoint"]) || value["checkpointStalls"] !== void 0 && !isNonNegativeInteger(value["checkpointStalls"]) || value["lastReason"] !== void 0 && typeof value["lastReason"] !== "string" || value["limitKind"] !== void 0 && (!isGoalLimitKind(value["limitKind"]) || value["status"] !== "usage_limited")) {
385
389
  return void 0;
386
390
  }
387
391
  if (value["evidenceCheckpoint"] && value["evidenceCursor"].recordId !== value["evidenceCheckpoint"].checkpointId) {
@@ -397,6 +401,9 @@ function parseGoalRecord(value) {
397
401
  activeTimeMs: value["activeTimeMs"],
398
402
  // Goals persisted before `tokensUsed` existed carry no spend to restore.
399
403
  tokensUsed: value["tokensUsed"] ?? 0,
404
+ // And no budget: a Goal from before budgets existed stays unbounded.
405
+ ...value["tokenBudget"] === void 0 ? {} : { tokenBudget: value["tokenBudget"] },
406
+ ...value["windDownTurnId"] === void 0 ? {} : { windDownTurnId: value["windDownTurnId"] },
400
407
  createdAt: value["createdAt"],
401
408
  updatedAt: value["updatedAt"],
402
409
  ...value["evidenceCheckpoint"] === void 0 ? {} : {
@@ -743,12 +750,22 @@ function createTranscriptToolCallResultUpdate(options) {
743
750
  }
744
751
  })
745
752
  };
746
- if (options.resultDisplay !== void 0 && !isTruncatedSessionDiffDisplay(options.resultDisplay)) {
747
- update["rawOutput"] = options.resultDisplay;
748
- }
753
+ const rawOutput = getReplayRawOutput(options.resultDisplay);
754
+ if (rawOutput !== void 0) update["rawOutput"] = rawOutput;
749
755
  return update;
750
756
  }
751
757
  __name(createTranscriptToolCallResultUpdate, "createTranscriptToolCallResultUpdate");
758
+ function getReplayRawOutput(resultDisplay) {
759
+ if (!isTruncatedSessionDiffDisplay(resultDisplay)) return resultDisplay;
760
+ if (resultDisplay["fileDiffTruncated"] === true || typeof resultDisplay["fileDiff"] !== "string") {
761
+ return void 0;
762
+ }
763
+ return {
764
+ fileName: resultDisplay["fileName"],
765
+ fileDiff: resultDisplay["fileDiff"]
766
+ };
767
+ }
768
+ __name(getReplayRawOutput, "getReplayRawOutput");
752
769
  function createTranscriptPlanUpdate(todos, cumulativeUsage, options = {}) {
753
770
  const meta = buildUpdateMeta({
754
771
  ...options,
@@ -2949,7 +2966,7 @@ async function extractMetadata(conversation, config) {
2949
2966
  const gitBranch = firstRecord?.gitBranch;
2950
2967
  let gitRepo;
2951
2968
  if (cwd) {
2952
- const { getGitRepoName } = await import("./deferred-core-runtime-GHT3GDOR.js");
2969
+ const { getGitRepoName } = await import("./deferred-core-runtime-LKLGBCGZ.js");
2953
2970
  gitRepo = getGitRepoName(cwd);
2954
2971
  }
2955
2972
  let model;
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  parseRule
5
- } from "./chunk-XYX474JQ.js";
5
+ } from "./chunk-EWIQ3NAE.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -6,7 +6,7 @@ import {
6
6
  getNestedProperty,
7
7
  getPersistScopeForModelSelection,
8
8
  restoreSettingsFromBackup
9
- } from "./chunk-MDZO5V2O.js";
9
+ } from "./chunk-HPXV655A.js";
10
10
  import {
11
11
  init_esbuild_shims
12
12
  } from "./chunk-5O2XNYP6.js";
@@ -2,13 +2,13 @@
2
2
  "use strict";
3
3
  import {
4
4
  delay
5
- } from "./chunk-V3GINY6K.js";
5
+ } from "./chunk-4QHPPXK2.js";
6
6
  import {
7
7
  isTlsVerificationDisabled
8
- } from "./chunk-GTUKW3I6.js";
8
+ } from "./chunk-PPKZ7JOE.js";
9
9
  import {
10
10
  getErrorMessage
11
- } from "./chunk-2NNTE2ED.js";
11
+ } from "./chunk-UHQFIS7N.js";
12
12
  import {
13
13
  init_esbuild_shims
14
14
  } from "./chunk-5O2XNYP6.js";
@@ -2,10 +2,10 @@
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
  createDebugLogger
8
- } from "./chunk-2NNTE2ED.js";
8
+ } from "./chunk-UHQFIS7N.js";
9
9
  import {
10
10
  writeStderrLine
11
11
  } from "./chunk-KGJGEEVR.js";
@@ -12,7 +12,7 @@ import {
12
12
  setSessionContext,
13
13
  setSessionIdOnContext,
14
14
  setShellTracePropagation
15
- } from "./chunk-2NNTE2ED.js";
15
+ } from "./chunk-UHQFIS7N.js";
16
16
  import {
17
17
  DiagLogLevel,
18
18
  ROOT_CONTEXT,
@@ -877,6 +877,168 @@ function redactUrlCredentials(source) {
877
877
  }
878
878
  __name(redactUrlCredentials, "redactUrlCredentials");
879
879
 
880
+ // packages/core/src/telemetry/context-usage.ts
881
+ init_esbuild_shims();
882
+ var CONTEXT_USAGE_ATTRIBUTE = "qwen-code.context.usage";
883
+ var MAX_CONTEXT_USAGE_ATTRIBUTE_LENGTH = 1024;
884
+ var MAX_SERIALIZED_NON_NEGATIVE_NUMBER = 10000000000000002e-22;
885
+ var contextUsageAttributeLengthLimit = MAX_CONTEXT_USAGE_ATTRIBUTE_LENGTH;
886
+ var FIXED_CATEGORY_KEYS = [
887
+ "system_prompt_tokens",
888
+ "builtin_tools_tokens",
889
+ "mcp_tools_tokens",
890
+ "memory_files_tokens",
891
+ "skills_tokens"
892
+ ];
893
+ var CATEGORY_KEYS = [...FIXED_CATEGORY_KEYS, "messages_tokens"];
894
+ function configureContextUsageAttributeLengthLimit(otelSpanAttributeValueLengthLimit) {
895
+ contextUsageAttributeLengthLimit = otelSpanAttributeValueLengthLimit !== void 0 && otelSpanAttributeValueLengthLimit > 0 ? Math.min(
896
+ MAX_CONTEXT_USAGE_ATTRIBUTE_LENGTH,
897
+ otelSpanAttributeValueLengthLimit
898
+ ) : MAX_CONTEXT_USAGE_ATTRIBUTE_LENGTH;
899
+ }
900
+ __name(configureContextUsageAttributeLengthLimit, "configureContextUsageAttributeLengthLimit");
901
+ function isRecord(value) {
902
+ return typeof value === "object" && value !== null;
903
+ }
904
+ __name(isRecord, "isRecord");
905
+ function isNonNegativeFinite(value) {
906
+ return typeof value === "number" && Number.isFinite(value) && value >= 0;
907
+ }
908
+ __name(isNonNegativeFinite, "isNonNegativeFinite");
909
+ function cloneContextUsage(value) {
910
+ try {
911
+ if (!isRecord(value)) return void 0;
912
+ const breakdown = value["breakdown"];
913
+ if (!isRecord(breakdown)) return void 0;
914
+ const windowSizeTokens = value["window_size_tokens"];
915
+ const compactionReserveTokens = value["compaction_reserve_tokens"];
916
+ const availableBeforeCompactionTokens = value["available_before_compaction_tokens"];
917
+ const categoryTokens = Object.fromEntries(
918
+ CATEGORY_KEYS.map((key) => [key, breakdown[key]])
919
+ );
920
+ const valid = value["version"] === 1 && value["estimated"] === true && Number.isSafeInteger(windowSizeTokens) && windowSizeTokens > 0 && isNonNegativeFinite(compactionReserveTokens) && (availableBeforeCompactionTokens === void 0 || isNonNegativeFinite(availableBeforeCompactionTokens)) && CATEGORY_KEYS.every(
921
+ (key) => Number.isSafeInteger(categoryTokens[key]) && categoryTokens[key] >= 0
922
+ );
923
+ if (!valid) return void 0;
924
+ return {
925
+ version: 1,
926
+ window_size_tokens: windowSizeTokens,
927
+ breakdown: {
928
+ system_prompt_tokens: categoryTokens.system_prompt_tokens,
929
+ builtin_tools_tokens: categoryTokens.builtin_tools_tokens,
930
+ mcp_tools_tokens: categoryTokens.mcp_tools_tokens,
931
+ memory_files_tokens: categoryTokens.memory_files_tokens,
932
+ skills_tokens: categoryTokens.skills_tokens,
933
+ messages_tokens: categoryTokens.messages_tokens
934
+ },
935
+ compaction_reserve_tokens: compactionReserveTokens,
936
+ ...availableBeforeCompactionTokens === void 0 ? {} : {
937
+ available_before_compaction_tokens: availableBeforeCompactionTokens
938
+ },
939
+ estimated: true
940
+ };
941
+ } catch {
942
+ return void 0;
943
+ }
944
+ }
945
+ __name(cloneContextUsage, "cloneContextUsage");
946
+ function isValidContextUsage(value) {
947
+ return cloneContextUsage(value) !== void 0;
948
+ }
949
+ __name(isValidContextUsage, "isValidContextUsage");
950
+ function normalizeContextUsage(snapshot, providerTotal) {
951
+ const validSnapshot = cloneContextUsage(snapshot);
952
+ if (!validSnapshot || !Number.isSafeInteger(providerTotal) || providerTotal < 0) {
953
+ return snapshot;
954
+ }
955
+ const providerTotalBigInt = BigInt(providerTotal);
956
+ const fixedSum = FIXED_CATEGORY_KEYS.reduce(
957
+ (sum, key) => sum + BigInt(validSnapshot.breakdown[key]),
958
+ 0n
959
+ );
960
+ let fixed;
961
+ let messagesTokens;
962
+ if (fixedSum > providerTotalBigInt) {
963
+ const allocations = FIXED_CATEGORY_KEYS.map((key, index) => {
964
+ const numerator = BigInt(validSnapshot.breakdown[key]) * providerTotalBigInt;
965
+ return {
966
+ key,
967
+ index,
968
+ floor: numerator / fixedSum,
969
+ remainder: numerator % fixedSum
970
+ };
971
+ });
972
+ let remaining = providerTotalBigInt - allocations.reduce((sum, item) => sum + item.floor, 0n);
973
+ const rankedAllocations = [...allocations].sort((left, right) => {
974
+ if (left.remainder === right.remainder) {
975
+ return left.index - right.index;
976
+ }
977
+ return left.remainder > right.remainder ? -1 : 1;
978
+ });
979
+ for (const allocation of rankedAllocations) {
980
+ if (remaining === 0n) break;
981
+ allocation.floor += 1n;
982
+ remaining -= 1n;
983
+ }
984
+ fixed = Object.fromEntries(
985
+ allocations.map((allocation) => [
986
+ allocation.key,
987
+ Number(allocation.floor)
988
+ ])
989
+ );
990
+ messagesTokens = 0;
991
+ } else {
992
+ fixed = Object.fromEntries(
993
+ FIXED_CATEGORY_KEYS.map((key) => [key, validSnapshot.breakdown[key]])
994
+ );
995
+ messagesTokens = Number(providerTotalBigInt - fixedSum);
996
+ }
997
+ return {
998
+ ...validSnapshot,
999
+ breakdown: {
1000
+ ...fixed,
1001
+ messages_tokens: messagesTokens
1002
+ },
1003
+ available_before_compaction_tokens: Math.max(
1004
+ 0,
1005
+ validSnapshot.window_size_tokens - validSnapshot.compaction_reserve_tokens - providerTotal
1006
+ )
1007
+ };
1008
+ }
1009
+ __name(normalizeContextUsage, "normalizeContextUsage");
1010
+ function serializeContextUsage(contextUsage) {
1011
+ try {
1012
+ const canonical = cloneContextUsage(contextUsage);
1013
+ if (!canonical) return void 0;
1014
+ return serializeCanonicalContextUsage(canonical);
1015
+ } catch {
1016
+ return void 0;
1017
+ }
1018
+ }
1019
+ __name(serializeContextUsage, "serializeContextUsage");
1020
+ function serializeContextUsageForSpanStart(contextUsage) {
1021
+ const canonical = cloneContextUsage(contextUsage);
1022
+ if (!canonical) return void 0;
1023
+ const serialized = serializeCanonicalContextUsage(canonical);
1024
+ if (!serialized) return void 0;
1025
+ const maximumFinalizedSize = serializeCanonicalContextUsage({
1026
+ ...canonical,
1027
+ breakdown: {
1028
+ ...canonical.breakdown,
1029
+ messages_tokens: Number.MAX_SAFE_INTEGER
1030
+ },
1031
+ available_before_compaction_tokens: MAX_SERIALIZED_NON_NEGATIVE_NUMBER
1032
+ });
1033
+ return maximumFinalizedSize ? serialized : void 0;
1034
+ }
1035
+ __name(serializeContextUsageForSpanStart, "serializeContextUsageForSpanStart");
1036
+ function serializeCanonicalContextUsage(contextUsage) {
1037
+ const serialized = JSON.stringify(contextUsage);
1038
+ return serialized.length <= contextUsageAttributeLengthLimit ? serialized : void 0;
1039
+ }
1040
+ __name(serializeCanonicalContextUsage, "serializeCanonicalContextUsage");
1041
+
880
1042
  // packages/core/src/telemetry/session-tracing.ts
881
1043
  init_esbuild_shims();
882
1044
  init_esm();
@@ -1054,7 +1216,7 @@ function initializeTelemetry(config) {
1054
1216
  telemetryInitPromise ??= (async () => {
1055
1217
  const debugLogger3 = createDebugLogger("OTEL");
1056
1218
  try {
1057
- const { startTelemetrySdk } = await import("./sdk-impl-VPNBLV7I.js");
1219
+ const { startTelemetrySdk } = await import("./sdk-impl-UUMVYMAL.js");
1058
1220
  if (telemetryInitialized) return;
1059
1221
  const started = await startTelemetrySdk(config);
1060
1222
  if (!started) return;
@@ -1560,6 +1722,8 @@ function startLLMRequestSpanWithContext(model, promptId, options) {
1560
1722
  const ctx = resolveGenAiParentContext(parentCtx);
1561
1723
  const sessionId = resolveSessionId(parentCtx, options?.sessionId, ctx);
1562
1724
  const userId = resolveGenAiUserId(parentCtx, promptId, options?.userId);
1725
+ const contextUsage = cloneContextUsage(options?.contextUsage);
1726
+ const serializedContextUsage = serializeContextUsageForSpanStart(contextUsage);
1563
1727
  const attributes = {
1564
1728
  ...sessionId ? { "session.id": sessionId } : {},
1565
1729
  ...sessionId ? { "gen_ai.conversation.id": sessionId } : {},
@@ -1570,7 +1734,8 @@ function startLLMRequestSpanWithContext(model, promptId, options) {
1570
1734
  "gen_ai.request.model": model,
1571
1735
  ...options?.operationName ? { "gen_ai.operation.name": options.operationName } : {},
1572
1736
  ...options?.providerName ? { "gen_ai.provider.name": options.providerName } : {},
1573
- ...options?.outputType ? { "gen_ai.output.type": options.outputType } : {}
1737
+ ...options?.outputType ? { "gen_ai.output.type": options.outputType } : {},
1738
+ ...serializedContextUsage ? { [CONTEXT_USAGE_ATTRIBUTE]: serializedContextUsage } : {}
1574
1739
  };
1575
1740
  const sessionContext = setSessionIdOnContext(ctx, sessionId);
1576
1741
  const span = getTracer().startSpan(
@@ -1583,6 +1748,7 @@ function startLLMRequestSpanWithContext(model, promptId, options) {
1583
1748
  span,
1584
1749
  startTime: Date.now(),
1585
1750
  ...interactionParentCtx ? { interactionOwner: interactionParentCtx } : {},
1751
+ ...serializedContextUsage && contextUsage ? { contextUsage } : {},
1586
1752
  attributes,
1587
1753
  type: "llm_request"
1588
1754
  };
@@ -1609,8 +1775,18 @@ function endLLMRequestSpan(span, metadata) {
1609
1775
  const duration = metadata?.durationMs ?? Date.now() - spanCtx.startTime;
1610
1776
  const endAttributes = { duration_ms: duration };
1611
1777
  if (metadata) {
1612
- if (metadata.inputTokens !== void 0 && Number.isSafeInteger(metadata.inputTokens) && metadata.inputTokens >= 0) {
1613
- endAttributes["gen_ai.usage.input_tokens"] = metadata.inputTokens;
1778
+ const inputTokens = metadata.inputTokens;
1779
+ const hasValidInputTokens = inputTokens !== void 0 && Number.isSafeInteger(inputTokens) && inputTokens >= 0;
1780
+ if (hasValidInputTokens) {
1781
+ endAttributes["gen_ai.usage.input_tokens"] = inputTokens;
1782
+ if (spanCtx.contextUsage) {
1783
+ const normalized = serializeContextUsage(
1784
+ normalizeContextUsage(spanCtx.contextUsage, inputTokens)
1785
+ );
1786
+ if (normalized) {
1787
+ endAttributes[CONTEXT_USAGE_ATTRIBUTE] = normalized;
1788
+ }
1789
+ }
1614
1790
  }
1615
1791
  if (metadata.outputTokens !== void 0 && Number.isSafeInteger(metadata.outputTokens) && metadata.outputTokens >= 0) {
1616
1792
  endAttributes["gen_ai.usage.output_tokens"] = metadata.outputTokens;
@@ -2382,6 +2558,8 @@ export {
2382
2558
  isBinary,
2383
2559
  normalizeContent,
2384
2560
  redactUrlCredentials,
2561
+ configureContextUsageAttributeLengthLimit,
2562
+ isValidContextUsage,
2385
2563
  isInNativeSubagentSpan,
2386
2564
  truncateSpanError,
2387
2565
  startInteractionSpan,
@@ -6,10 +6,10 @@ import {
6
6
  extractGeminiContent,
7
7
  extractOpenAiContent,
8
8
  stringifyGenAiJson
9
- } from "./chunk-FJWICLG7.js";
9
+ } from "./chunk-Y3QL45LS.js";
10
10
  import {
11
11
  createDebugLogger
12
- } from "./chunk-2NNTE2ED.js";
12
+ } from "./chunk-UHQFIS7N.js";
13
13
  import {
14
14
  ROOT_CONTEXT,
15
15
  context,
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  atomicWriteFileSync
5
- } from "./chunk-7QGEJI7M.js";
5
+ } from "./chunk-23RFD54N.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";