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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (437) hide show
  1. package/bundled/computer-use/SKILL.md +3 -3
  2. package/bundled/goal-draft/SKILL.md +109 -0
  3. package/bundled/qc-helper/docs/configuration/settings.md +37 -36
  4. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  5. package/bundled/qc-helper/docs/features/channels/dws.md +2 -0
  6. package/bundled/qc-helper/docs/features/channels/overview.md +34 -3
  7. package/bundled/qc-helper/docs/features/code-review.md +3 -3
  8. package/bundled/qc-helper/docs/features/commands.md +2 -1
  9. package/bundled/qc-helper/docs/features/computer-use.md +2 -2
  10. package/bundled/qc-helper/docs/features/goals.md +58 -0
  11. package/bundled/qc-helper/docs/features/headless.md +13 -11
  12. package/bundled/qc-helper/docs/features/status-line.md +3 -3
  13. package/bundled/qc-helper/docs/features/tool-use-summaries.md +1 -1
  14. package/bundled/qc-helper/docs/qwen-serve.md +1 -1
  15. package/bundled/review/SKILL.md +81 -31
  16. package/bundled/review/references/persistence.md +7 -3
  17. package/bundled/review/references/posting.md +10 -4
  18. package/chunks/MaxSizedBox-X42SXBJH.js +110 -0
  19. package/chunks/{StandaloneSessionPicker-5D2L22SF.js → StandaloneSessionPicker-2FJAOLGG.js} +81 -83
  20. package/chunks/{acpAgent-4DCKLA32.js → acpAgent-2ZMIJAFV.js} +1153 -357
  21. package/chunks/{agent-B4AFZL6H.js → agent-X5WX3L2I.js} +44 -46
  22. package/chunks/agent-headless-IZM25LJA.js +85 -0
  23. package/chunks/{anthropicContentGenerator-U76GTVB6.js → anthropicContentGenerator-YVTB6QX7.js} +46 -50
  24. package/chunks/{artifact-tool-XDJCZZCF.js → artifact-tool-XSMPHZBT.js} +11 -3
  25. package/chunks/{askUserQuestion-ZXXERLEV.js → askUserQuestion-4SWJY65V.js} +2 -2
  26. package/chunks/bridge-ME6QXZNA.js +119 -0
  27. package/chunks/{channel-management-service-HXXS3HOZ.js → channel-management-service-HQ6KDS7C.js} +6 -6
  28. package/chunks/channel-settings-store-PEOI7XCG.js +120 -0
  29. package/chunks/{channel-worker-group-EVDC2P4K.js → channel-worker-group-6NA6BBZV.js} +8 -7
  30. package/chunks/{channel-worker-manager-IJJZHGEI.js → channel-worker-manager-NEZ2J6RK.js} +10 -8
  31. package/chunks/{channel-worker-supervisor-YSKB5GVB.js → channel-worker-supervisor-FKU7DIHJ.js} +6 -5
  32. package/chunks/{chunk-7QGEJI7M.js → chunk-23RFD54N.js} +1 -1
  33. package/chunks/{chunk-JLU3FPQR.js → chunk-2HYKTO7V.js} +5 -5
  34. package/chunks/chunk-2LNNVAUV.js +1584 -0
  35. package/chunks/{chunk-FJAITR4L.js → chunk-2OBKDPZZ.js} +2 -2
  36. package/chunks/{chunk-JSY43GMI.js → chunk-2OUD5T67.js} +185 -174
  37. package/chunks/{chunk-LJP2BBMK.js → chunk-2SXSLSQE.js} +4 -4
  38. package/chunks/chunk-2TNL5KPM.js +49 -0
  39. package/chunks/{chunk-XMSMTU6H.js → chunk-2YOHKHYR.js} +4 -4
  40. package/chunks/{chunk-MCKJTBZN.js → chunk-36GSQ3MM.js} +2 -2
  41. package/chunks/chunk-36LGBEM6.js +130 -0
  42. package/chunks/{chunk-ZWKGZB2K.js → chunk-3JXM2CVW.js} +3 -3
  43. package/chunks/{chunk-X3XGCJ32.js → chunk-3SZC4VP4.js} +28 -111
  44. package/chunks/{chunk-ILPXSKGQ.js → chunk-3WK3QDNV.js} +2 -2
  45. package/chunks/{chunk-IKN3IUJP.js → chunk-3XKLXHGK.js} +17 -9
  46. package/chunks/{chunk-ZLTEQYNC.js → chunk-42IDLQWS.js} +26 -20
  47. package/chunks/chunk-4CMJKUND.js +95 -0
  48. package/chunks/{chunk-77TOMRBG.js → chunk-4K7KNVWH.js} +3 -3
  49. package/chunks/{chunk-SQPOJ4ZI.js → chunk-4NDLQAY2.js} +27 -270
  50. package/chunks/{chunk-V3GINY6K.js → chunk-4QHPPXK2.js} +16 -8
  51. package/chunks/{chunk-VBF4KZRQ.js → chunk-4TT3IVGA.js} +1 -1
  52. package/chunks/{chunk-IOGKXPL3.js → chunk-4VPCTGH6.js} +6 -6
  53. package/chunks/chunk-4VQBQLIZ.js +293 -0
  54. package/chunks/{chunk-UCSV2IZW.js → chunk-62GQFYID.js} +3 -3
  55. package/chunks/{chunk-SLEWBQWM.js → chunk-6DIGWMGT.js} +2 -2
  56. package/chunks/{chunk-BRVWYMKV.js → chunk-6MBXY6WM.js} +1 -1
  57. package/chunks/{chunk-PVBT5QPD.js → chunk-6PJOTWAN.js} +1 -1
  58. package/chunks/{chunk-WZ3QKPMQ.js → chunk-6X7EU5TI.js} +19 -31
  59. package/chunks/{chunk-KQYW2GB5.js → chunk-6ZPDLGHN.js} +6 -6
  60. package/chunks/{chunk-AKQA3WCH.js → chunk-734C6JGI.js} +723 -3399
  61. package/chunks/{chunk-F7M6ZFGU.js → chunk-73RM4POK.js} +8 -8
  62. package/chunks/{chunk-ELY4QVIB.js → chunk-7EQQR46F.js} +1 -1
  63. package/chunks/{chunk-KGJGEEVR.js → chunk-7FA2II6K.js} +10 -1
  64. package/chunks/chunk-7J6OTNGO.js +424 -0
  65. package/chunks/{chunk-LWLEPXKK.js → chunk-7LOELM2I.js} +19 -2
  66. package/chunks/{chunk-DIMEPKCW.js → chunk-7S226YTK.js} +1 -1
  67. package/chunks/{chunk-AWFZDYSD.js → chunk-7T52W4SW.js} +1 -1
  68. package/chunks/{chunk-3JKUX4PB.js → chunk-7VMIMAVB.js} +9 -9
  69. package/chunks/{chunk-2MHGD7EE.js → chunk-A3LWD5MK.js} +1 -1
  70. package/chunks/{chunk-E4I5MVBR.js → chunk-ABS25QER.js} +1 -1
  71. package/chunks/{chunk-TDQBVEPK.js → chunk-AIAOIFY4.js} +10 -8
  72. package/chunks/{chunk-NEZZHGEI.js → chunk-AYFA7MZV.js} +6 -6
  73. package/chunks/{chunk-FVDQ5E67.js → chunk-B466ZSHZ.js} +3 -3
  74. package/chunks/{chunk-6US7BF3G.js → chunk-B5PHIJGI.js} +183 -5
  75. package/chunks/{chunk-4TPAG3O7.js → chunk-BFPESSTR.js} +1 -1
  76. package/chunks/{chunk-WBT3STGU.js → chunk-BKWNKLZB.js} +20 -20
  77. package/chunks/{chunk-T45CL2NT.js → chunk-BOWFGCEU.js} +3 -3
  78. package/chunks/{chunk-IPQA4SR5.js → chunk-BWORX6FA.js} +1 -1
  79. package/chunks/{chunk-BKDAF7ES.js → chunk-BXDAPVQU.js} +2 -2
  80. package/chunks/{chunk-ZEADBZLO.js → chunk-C2X7KY45.js} +3 -3
  81. package/chunks/{chunk-PTQF7WRA.js → chunk-C3PEFRKD.js} +6 -6
  82. package/chunks/{chunk-7OBH4AM2.js → chunk-CAJTKR6W.js} +5 -5
  83. package/chunks/{chunk-2FN2HNTI.js → chunk-CFJY4DGX.js} +2 -2
  84. package/chunks/{chunk-SUE2ZMUH.js → chunk-CIZCL2MW.js} +49 -31
  85. package/chunks/{chunk-W2WRNJKX.js → chunk-CLWO3B77.js} +6 -6
  86. package/chunks/{chunk-U45D46O5.js → chunk-CMHFCLBU.js} +1 -1
  87. package/chunks/{chunk-LRKMQPMD.js → chunk-CQH5KTKC.js} +1 -1
  88. package/chunks/{chunk-JECO75XD.js → chunk-D5LUXLUH.js} +2 -2
  89. package/chunks/chunk-DJBQCO2E.js +842 -0
  90. package/chunks/{chunk-BQBUZDDH.js → chunk-DJECZIJX.js} +42 -42
  91. package/chunks/{chunk-GTUZ3R6I.js → chunk-DJEZ55D4.js} +351 -113
  92. package/chunks/{chunk-HPECDZ6X.js → chunk-DJPASAUV.js} +3866 -1077
  93. package/chunks/{chunk-VYWCFWI5.js → chunk-DMLVSW7L.js} +542 -654
  94. package/chunks/{chunk-EB4VDXNI.js → chunk-DYXFD5RO.js} +182 -3
  95. package/chunks/{chunk-ZKAZP2ZG.js → chunk-EB6QRGHM.js} +3 -3
  96. package/chunks/{chunk-UWICO5KN.js → chunk-EFWRMA2I.js} +3 -3
  97. package/chunks/{chunk-3UZCLCXR.js → chunk-EKSCLBBF.js} +3 -3
  98. package/chunks/{chunk-ALTQLFEG.js → chunk-EQSBPBZ3.js} +5 -194
  99. package/chunks/{chunk-624NHDGB.js → chunk-ERFDKH32.js} +11 -0
  100. package/chunks/{chunk-4K44OMLI.js → chunk-FROAFEFB.js} +3 -3
  101. package/chunks/{chunk-MZS7GEC7.js → chunk-FTF2YIZ5.js} +1 -1
  102. package/chunks/{chunk-Z7VOMGDC.js → chunk-FTJMWDND.js} +0 -24
  103. package/chunks/{chunk-ZJG323IA.js → chunk-G6FECKTJ.js} +7 -5
  104. package/chunks/{chunk-TMGAS5TO.js → chunk-GBJBJ4HX.js} +26 -4
  105. package/chunks/{chunk-UCQOSV6A.js → chunk-GPGU4S2N.js} +3 -3
  106. package/chunks/{chunk-BHTJAO36.js → chunk-GVIVASYK.js} +7 -7
  107. package/chunks/chunk-H72BQNM3.js +645 -0
  108. package/chunks/{chunk-Z4X5MTRT.js → chunk-HCOBAG2L.js} +2 -4
  109. package/chunks/{chunk-FCSWZAS3.js → chunk-HP5LR5HL.js} +5 -5
  110. package/chunks/{chunk-7JPW6IYH.js → chunk-HVC3PNVC.js} +1 -1
  111. package/chunks/{chunk-OI2DR6QB.js → chunk-I6LYRJPB.js} +3 -3
  112. package/chunks/{chunk-E55H6BZ7.js → chunk-ICURCKIU.js} +1335 -119
  113. package/chunks/{chunk-PAJGKZAA.js → chunk-ISKH4QX3.js} +14 -12
  114. package/chunks/{chunk-AYVIGUUK.js → chunk-JB4JIVTJ.js} +1 -1
  115. package/chunks/{chunk-FN5C6C7G.js → chunk-JHYH6PYQ.js} +192 -478
  116. package/chunks/{chunk-T6OODF2U.js → chunk-JWALNCLT.js} +1 -1
  117. package/chunks/{chunk-SKNVVYIJ.js → chunk-K5KXUXWC.js} +3 -3
  118. package/chunks/{chunk-XUX6O2ZT.js → chunk-KID24ZFN.js} +4 -1
  119. package/chunks/{chunk-I6DY753S.js → chunk-KJO2LBUK.js} +944 -18
  120. package/chunks/{chunk-5T4LWWNX.js → chunk-KYWTPLBJ.js} +18 -21
  121. package/chunks/{chunk-CZFQ62RM.js → chunk-LHBUKJG2.js} +4 -4
  122. package/chunks/{chunk-TOF4UZHH.js → chunk-LUEHOUHM.js} +3 -3
  123. package/chunks/{chunk-2YDYDDE2.js → chunk-M3QRM3DE.js} +3 -3
  124. package/chunks/{chunk-GNMJNDZE.js → chunk-M6FOJXW3.js} +1 -1
  125. package/chunks/{chunk-ZGWDHSUM.js → chunk-MF7HCQWZ.js} +4 -4
  126. package/chunks/{chunk-66GIFJ63.js → chunk-MK2GIB46.js} +1 -1
  127. package/chunks/{chunk-TFV4RXPU.js → chunk-MO3FC2WT.js} +1 -1
  128. package/chunks/{chunk-TR7G7XFQ.js → chunk-MPNBVAEU.js} +5 -5
  129. package/chunks/{chunk-K3LPAED5.js → chunk-MQM5PJML.js} +24 -4
  130. package/chunks/{chunk-3WBMPR3S.js → chunk-MSBO7X2W.js} +1 -1
  131. package/chunks/{chunk-5PA6UEYA.js → chunk-MZCJWS5Y.js} +1 -1
  132. package/chunks/{chunk-BGXZBI5B.js → chunk-N4X7G4J2.js} +2 -1
  133. package/chunks/{chunk-27ONXAFY.js → chunk-NIFYWDYN.js} +1 -1
  134. package/chunks/{chunk-AP7WZONS.js → chunk-NMOD2FXQ.js} +19 -9
  135. package/chunks/{chunk-IJVDHPKD.js → chunk-NU7RKEZR.js} +2 -2
  136. package/chunks/{chunk-5URK47RN.js → chunk-NV55WWD6.js} +11595 -10375
  137. package/chunks/{chunk-HABT2Z7R.js → chunk-OU5APVWO.js} +4 -4
  138. package/chunks/{chunk-QR4AHMGQ.js → chunk-P2G476QN.js} +13 -13
  139. package/chunks/{chunk-5SM2AK65.js → chunk-PADPMMYM.js} +5 -5
  140. package/chunks/{chunk-RRKNX553.js → chunk-PDQGMSZK.js} +1 -1
  141. package/chunks/{chunk-GTUKW3I6.js → chunk-PPKZ7JOE.js} +1 -1
  142. package/chunks/{chunk-SAH4BD2J.js → chunk-PQEISIKS.js} +67 -0
  143. package/chunks/{chunk-XIRDDFRS.js → chunk-PZ66FRIC.js} +2644 -2296
  144. package/chunks/{chunk-H3HZ4AWW.js → chunk-Q2MSPKIJ.js} +1 -1
  145. package/chunks/{chunk-WEGXPP5E.js → chunk-QFCDF5PL.js} +1 -1
  146. package/chunks/{chunk-OF2DPXUS.js → chunk-QYMAKPY5.js} +119 -24
  147. package/chunks/{chunk-JVPFTDBK.js → chunk-RFIDDFAL.js} +1 -1
  148. package/chunks/chunk-RKFGE7JH.js +93 -0
  149. package/chunks/{chunk-CPPYZHBN.js → chunk-RU7BK6B3.js} +1 -1
  150. package/chunks/chunk-SEONHUS3.js +275 -0
  151. package/chunks/{chunk-DEYPMJPD.js → chunk-SMPR7SPO.js} +1 -1
  152. package/chunks/chunk-SS4MRMKE.js +3525 -0
  153. package/chunks/{chunk-BPMVPWBT.js → chunk-SS5SDCD3.js} +6 -6
  154. package/chunks/{chunk-J3CBIEDS.js → chunk-ST5MDGH3.js} +32 -15
  155. package/chunks/{chunk-J5352S3S.js → chunk-ST5V3ZOC.js} +3 -3
  156. package/chunks/{chunk-7CWEZQ6T.js → chunk-STUJ7IMZ.js} +0 -77
  157. package/chunks/{chunk-4K7NQDCG.js → chunk-T4EFG2P5.js} +18 -9
  158. package/chunks/{chunk-TWSKM647.js → chunk-T7KMERIX.js} +1 -1
  159. package/chunks/{chunk-5CMWFBML.js → chunk-TEBDFQBZ.js} +1 -1
  160. package/chunks/{chunk-EC5BONC3.js → chunk-TPI7O7HR.js} +1 -1
  161. package/chunks/{chunk-T2CRBIDJ.js → chunk-TTX2JUE6.js} +1 -1
  162. package/chunks/{chunk-VOEMVOM4.js → chunk-TVC6HQ2U.js} +2 -2
  163. package/chunks/{chunk-WXDZZFH3.js → chunk-TZBSGJ6C.js} +6 -6
  164. package/chunks/chunk-U54AYGEC.js +337 -0
  165. package/chunks/{chunk-2NNTE2ED.js → chunk-UHQFIS7N.js} +15 -0
  166. package/chunks/{chunk-76WGY6LW.js → chunk-URE3QBBB.js} +3 -3
  167. package/chunks/{chunk-KOJ6MHD5.js → chunk-UTLCH2FK.js} +1 -1
  168. package/chunks/{chunk-7DPKPBOQ.js → chunk-V2NDP3I4.js} +2 -2
  169. package/chunks/{chunk-FJWICLG7.js → chunk-V4264FEG.js} +9 -9
  170. package/chunks/{chunk-XR7OIAQF.js → chunk-V5J4J5TP.js} +2 -2
  171. package/chunks/{chunk-7UJTY5V3.js → chunk-V7EESTJV.js} +1 -1
  172. package/chunks/{chunk-Z6L3C4VF.js → chunk-VBCPNIQD.js} +39 -39
  173. package/chunks/{chunk-ATLGYSYH.js → chunk-VGIFXISB.js} +4 -4
  174. package/chunks/{chunk-X2UOOG5V.js → chunk-VQUGEVGR.js} +1 -1
  175. package/chunks/{chunk-XJS54K4A.js → chunk-VTHREBQM.js} +2 -2
  176. package/chunks/{chunk-AA7VBRBG.js → chunk-W3JH33JE.js} +8 -8
  177. package/chunks/{chunk-FPH6TXD3.js → chunk-WAOIHTJS.js} +1 -1
  178. package/chunks/{chunk-CDUN63IN.js → chunk-WGY3AVGM.js} +3 -3
  179. package/chunks/{chunk-JLGFGPZJ.js → chunk-WNPDGUJO.js} +22 -3
  180. package/chunks/{chunk-O3BUXIPM.js → chunk-WXEA74YB.js} +3 -3
  181. package/chunks/{chunk-YRLW2MSX.js → chunk-XBVNNDPK.js} +11 -4
  182. package/chunks/{chunk-VL4YX3FH.js → chunk-XF63PKEN.js} +1 -1
  183. package/chunks/{chunk-R7G7GKOX.js → chunk-XHF7WQ6B.js} +3 -3
  184. package/chunks/{chunk-3FSBMAYD.js → chunk-XQFT3QUF.js} +1 -1
  185. package/chunks/{chunk-3D6PDLNJ.js → chunk-XSG6G3G6.js} +49 -32
  186. package/chunks/{chunk-5JCZ3UKB.js → chunk-Y5S7LBOZ.js} +44 -7
  187. package/chunks/{chunk-OLS3MAXQ.js → chunk-YLSQLSH7.js} +15 -9
  188. package/chunks/{chunk-2SERYG4T.js → chunk-YTDVNSUQ.js} +1 -1
  189. package/chunks/{chunk-KPF2K55D.js → chunk-ZEYFMJQA.js} +39 -8
  190. package/chunks/{chunk-OT4YKUUV.js → chunk-ZU4UDIWX.js} +2 -2
  191. package/chunks/chunk-ZWJDJ6RU.js +2597 -0
  192. package/chunks/{chunk-R3T33BG5.js → chunk-ZYMLPEZQ.js} +3 -3
  193. package/chunks/{chunk-DID6IRGC.js → chunk-ZZMSC3RG.js} +56 -39
  194. package/chunks/{chunk-L436XFLJ.js → chunk-ZZUKP7HV.js} +1 -1
  195. package/chunks/config-utils-R6M3TA34.js +113 -0
  196. package/chunks/contextCommand-ZCAP23J6.js +106 -0
  197. package/chunks/{core-runtime-CEJRHCRF.js → core-runtime-AXB6SK5D.js} +59 -61
  198. package/chunks/{create-sub-session-RVHSWVAP.js → create-sub-session-23ITIELI.js} +3 -3
  199. package/chunks/{create-sub-session-DFZVIG56.js → create-sub-session-4QNE64MR.js} +164 -85
  200. package/chunks/{cron-create-IJGVR5R2.js → cron-create-KJ4IY6PP.js} +57 -10
  201. package/chunks/{cron-delete-4N5BI6GL.js → cron-delete-MBLQCAYY.js} +4 -4
  202. package/chunks/{cron-list-2CATIPUX.js → cron-list-DWH2PQ47.js} +4 -4
  203. package/chunks/{daemon-NAYK4XXU.js → daemon-3GNHB3M2.js} +523 -8
  204. package/chunks/{daemon-git-worktree-guard-L6ZUFKF7.js → daemon-git-worktree-guard-IVAJJWYK.js} +56 -58
  205. package/chunks/daemon-status-provider-K3SJ5C2U.js +117 -0
  206. package/chunks/daemon-trust-policy-DOR3YG62.js +112 -0
  207. package/chunks/{daemon-trust-policy-monitor-2G3EKQEU.js → daemon-trust-policy-monitor-KGGROSIV.js} +64 -66
  208. package/chunks/deferred-core-runtime-WOYLUQQ7.js +114 -0
  209. package/chunks/{display-image-6KHQNEAE.js → display-image-BE7I6ZB6.js} +5 -5
  210. package/chunks/{dist-DJBNNPLN.js → dist-4WXLCBDR.js} +1 -1
  211. package/chunks/{dist-TJUDJTCB.js → dist-5VXFRTWU.js} +280 -48
  212. package/chunks/{dist-6H6RZ5H6.js → dist-6BPYWHVD.js} +89 -65
  213. package/chunks/{dist-ZBVOXSKF.js → dist-GFN5DCBX.js} +74 -65
  214. package/chunks/{dist-SATKXKUR.js → dist-HZNT6GQS.js} +1 -1
  215. package/chunks/{dist-FVJZSIO4.js → dist-LVZCXVPF.js} +72 -20
  216. package/chunks/{dist-7CKN54NL.js → dist-N6W6E753.js} +71 -64
  217. package/chunks/{dist-4Q7NTUNB.js → dist-NSV4NBPK.js} +31 -14
  218. package/chunks/{dist-UQUFZDIY.js → dist-SWQMYP2Q.js} +18 -16
  219. package/chunks/earlyInputCapture-OHBEVO4K.js +107 -0
  220. package/chunks/{edit-ZERGX3RV.js → edit-LEQLAGPZ.js} +45 -47
  221. package/chunks/{en-6MDBWMTG.js → en-YLXBXM4Z.js} +2 -1
  222. package/chunks/{enter-worktree-UOZ6ZTP7.js → enter-worktree-35QCAAFP.js} +7 -7
  223. package/chunks/{enterPlanMode-W2RP3P5B.js → enterPlanMode-ONQN3WHE.js} +47 -49
  224. package/chunks/{environment-ZBJ23YVR.js → environment-UANTR7A4.js} +60 -62
  225. package/chunks/errors-WAK6KFBC.js +113 -0
  226. package/chunks/{exit-worktree-G2QATUCV.js → exit-worktree-XQD6D543.js} +7 -7
  227. package/chunks/exitPlanMode-UEYBG6P5.js +83 -0
  228. package/chunks/{fast-path-4MWBCEUF.js → fast-path-WUL7UZ6H.js} +7 -7
  229. package/chunks/{fast-path-settings-XMFBYFUH.js → fast-path-settings-XH426LUU.js} +3 -3
  230. package/chunks/{glob-DKTNG32L.js → glob-Y54QUWDY.js} +44 -46
  231. package/chunks/{goal-tools-CNVXMSZD.js → goal-tools-PTD3MBA7.js} +10 -8
  232. package/chunks/{grep-3NLSS32D.js → grep-5GPICQBU.js} +6 -6
  233. package/chunks/handleAutoUpdate-FP3NWNSG.js +109 -0
  234. package/chunks/i18n-INIU5X7A.js +124 -0
  235. package/chunks/{image-gen-63NN2H5N.js → image-gen-J6FDGUZP.js} +8 -10
  236. package/chunks/initializer-TYODV6GE.js +113 -0
  237. package/chunks/installationInfo-AAPKYDSZ.js +107 -0
  238. package/chunks/{keychain-token-storage-3MGFRYGM.js → keychain-token-storage-37XPR34V.js} +2 -2
  239. package/chunks/list-TUODDN6J.js +116 -0
  240. package/chunks/{list-agents-EXRSHIDJ.js → list-agents-DI3YFTDT.js} +2 -2
  241. package/chunks/{gemini-X5GQHQYF.js → llm-NSAVK5V3.js} +117 -114
  242. package/chunks/{geminiContentGenerator-UDSWXZXL.js → llm-content-generator-AY2QKXHE.js} +29 -29
  243. package/chunks/loadedSettingsAdapter-KJCLZ3C4.js +110 -0
  244. package/chunks/{loggingContentGenerator-73C7TKDK.js → loggingContentGenerator-DSFQHXIF.js} +328 -37
  245. package/chunks/{loop-wakeup-XBPB2BRO.js → loop-wakeup-XJFONSQ7.js} +5 -5
  246. package/chunks/{ls-WFONAND2.js → ls-3VAT2J7A.js} +4 -4
  247. package/chunks/{lsp-DUKPDUXN.js → lsp-5W7IRUBH.js} +2 -2
  248. package/chunks/{managed-npm-update-H2KOLQZU.js → managed-npm-update-TSWENTK5.js} +57 -59
  249. package/chunks/mcp-MWSAPFOL.js +110 -0
  250. package/chunks/{monitor-TGCMNJJH.js → monitor-RW4GWJHB.js} +44 -46
  251. package/chunks/nonInteractiveCli-JXKL343Q.js +185 -0
  252. package/chunks/{notebook-edit-YEUNZYDX.js → notebook-edit-CQNYS5OR.js} +45 -47
  253. package/chunks/{open-with-auth-4UI3KHUR.js → open-with-auth-YN3QZHVM.js} +1 -1
  254. package/chunks/{openaiContentGenerator-J7LD4VSL.js → openaiContentGenerator-J6QIF7EX.js} +26 -28
  255. package/chunks/pidfile-QOIQZFT2.js +111 -0
  256. package/chunks/process-registry-OAEG6WGC.js +662 -0
  257. package/chunks/{processUtils-ZHFC7CSL.js → processUtils-GPHNANKZ.js} +2 -2
  258. package/chunks/prompt-terminal-ledger-FOMFTYOM.js +105 -0
  259. package/chunks/{qwenContentGenerator-YEWWK3JQ.js → qwenContentGenerator-WWDXPYQI.js} +49 -51
  260. package/chunks/{qwenOAuth2-JIYAWXTW.js → qwenOAuth2-OF5WRBQT.js} +7 -9
  261. package/chunks/{read-file-ZQI3WPVK.js → read-file-FQUQHC6N.js} +13 -13
  262. package/chunks/{read-mcp-resource-7A7NFSFL.js → read-mcp-resource-XD257PGJ.js} +2 -2
  263. package/chunks/{record-artifact-CPJ4IJSD.js → record-artifact-VW23GS4F.js} +4 -4
  264. package/chunks/{report-findings-VFM5DENC.js → report-findings-AO5VYFLR.js} +9 -5
  265. package/chunks/{request-shutdown-6IW46GD7.js → request-shutdown-BCLA3JV2.js} +7 -7
  266. package/chunks/resumeHistoryUtils-NSGF3UCB.js +118 -0
  267. package/chunks/ripGrep-4CAT6SKV.js +39 -0
  268. package/chunks/{run-qwen-serve-WHWU7NZ6.js → run-qwen-serve-5X6IDZER.js} +371 -357
  269. package/chunks/{runtime-E7BSPWQP.js → runtime-HK27GMPF.js} +69 -71
  270. package/chunks/scheduled-tasks-MN2ZZ5P6.js +127 -0
  271. package/chunks/{scheduler-TJPATFOM.js → scheduler-WD4MHMO5.js} +58 -60
  272. package/chunks/{sdk-exporters-http-XXSKBD2C.js → sdk-exporters-http-TTU2CHBU.js} +2 -2
  273. package/chunks/{sdk-impl-VPNBLV7I.js → sdk-impl-UUMVYMAL.js} +11 -5
  274. package/chunks/{send-message-OXZK6USO.js → send-message-AJ4OCUBV.js} +25 -9
  275. package/chunks/serve-2XCHPPGG.js +118 -0
  276. package/chunks/{server-AXCN7QBJ.js → server-GO2N5DH7.js} +6080 -4964
  277. package/chunks/{session-HO4US3AG.js → session-IFNHTUBT.js} +112 -112
  278. package/chunks/session-pr-refresh-I3UBWMVP.js +364 -0
  279. package/chunks/{settings-B2PFJJN4.js → settings-L6N54CU6.js} +63 -65
  280. package/chunks/{shell-7XMSANI3.js → shell-4Y5LLW6N.js} +44 -46
  281. package/chunks/{skill-NL3VH562.js → skill-YOWTRAKQ.js} +68 -24
  282. package/chunks/skill-settings-ZL4JY5UE.js +118 -0
  283. package/chunks/spawnChannel-ZST6XJVJ.js +112 -0
  284. package/chunks/standalone-update-THVU3OKY.js +118 -0
  285. package/chunks/{startInteractiveUI-G2XKSCQ7.js → startInteractiveUI-XDFSHBZD.js} +3076 -2475
  286. package/chunks/{stdioHelpers-7A2EE64Z.js → stdioHelpers-AY6XCDY2.js} +3 -1
  287. package/chunks/{syntheticOutput-5AJ444QT.js → syntheticOutput-ML43GEFN.js} +3 -3
  288. package/chunks/{task-create-TY7P6UHG.js → task-create-QN4LYRSE.js} +11 -11
  289. package/chunks/{task-list-BELMPA75.js → task-list-JPLGK45U.js} +5 -5
  290. package/chunks/{task-stop-U3S3KZG2.js → task-stop-CXEH5L2D.js} +2 -2
  291. package/chunks/{task-update-O4IGDPCK.js → task-update-IWEOJFV2.js} +11 -11
  292. package/chunks/{team-create-IYBUOORE.js → team-create-OOPXCDBA.js} +44 -46
  293. package/chunks/{team-delete-YWFXX77L.js → team-delete-RZVVSGCY.js} +5 -5
  294. package/chunks/{team-plan-approval-YKU57LBM.js → team-plan-approval-DSX5EWAT.js} +44 -46
  295. package/chunks/terminal-image-renderer-KS25G33E.js +114 -0
  296. package/chunks/theme-manager-YMZNG45F.js +102 -0
  297. package/chunks/{todoWrite-435EO2CS.js → todoWrite-WDJNQEMW.js} +43 -25
  298. package/chunks/{tool-search-4Q3KASIQ.js → tool-search-J5Q6U7DN.js} +22 -22
  299. package/chunks/total-session-admission-PVN64JVV.js +114 -0
  300. package/chunks/trustedFolders-FATSC4YI.js +122 -0
  301. package/chunks/{types-WYCFCEHR.js → types-HKLPXZB3.js} +1 -3
  302. package/chunks/{update-relaunch-4DC2KKFS.js → update-relaunch-SIKHLHVR.js} +6 -6
  303. package/chunks/updateCheck-D3YG2WCD.js +118 -0
  304. package/chunks/useAutoAcceptIndicator-ILINOSAS.js +120 -0
  305. package/chunks/{validateNonInterActiveAuth-YAE4YPO3.js → validateNonInterActiveAuth-JUDQP6V4.js} +105 -105
  306. package/chunks/{version-QFP7OGWX.js → version-C63GDDWN.js} +1 -1
  307. package/chunks/{web-fetch-6T23IK6Q.js → web-fetch-FOQZMNSC.js} +16 -18
  308. package/chunks/{web-search-WBWTCZK2.js → web-search-PUJTBFUC.js} +9 -11
  309. package/chunks/{web-shell-static-A6QMUNNV.js → web-shell-static-HNB4FDOE.js} +2 -2
  310. package/chunks/{workflow-FMAA3D4R.js → workflow-Y5IPINVH.js} +128 -94
  311. package/chunks/workspace-providers-status-IJ4VHFMB.js +114 -0
  312. package/chunks/{workspace-registration-store-CMMX7EPX.js → workspace-registration-store-SMJWI2AI.js} +1 -1
  313. package/chunks/workspace-registry-BTGZIMPK.js +123 -0
  314. package/chunks/workspace-service-SIN67ITC.js +126 -0
  315. package/chunks/workspace-skills-status-F3RKCUIX.js +113 -0
  316. package/chunks/{workspace-trust-reconciler-PJDQUTJL.js → workspace-trust-reconciler-PLIDLJZX.js} +72 -72
  317. package/chunks/write-file-PAIGB33C.js +88 -0
  318. package/chunks/{zh-TW-MV4FWFB6.js → zh-TW-RPTMRTHG.js} +2 -1
  319. package/chunks/{zh-X3WGU6SI.js → zh-UNY63FR3.js} +2 -1
  320. package/chunks/{zoom-image-WVYVFRXF.js → zoom-image-LYQD7BQA.js} +13 -13
  321. package/cli.js +16 -16
  322. package/locales/en.js +2 -0
  323. package/locales/zh-TW.js +2 -0
  324. package/locales/zh.js +2 -0
  325. package/package.json +3 -3
  326. package/web-shell/assets/{abnfDiagram-VCTEODGH-d-8xa8uz.js → abnfDiagram-VCTEODGH-TRCMSA_6.js} +1 -1
  327. package/web-shell/assets/{arc-BhB7CrGK.js → arc-D9Uls5b3.js} +1 -1
  328. package/web-shell/assets/{architectureDiagram-5GKGNRK7-BDCd_IcJ.js → architectureDiagram-5GKGNRK7-Bwb8jPXg.js} +1 -1
  329. package/web-shell/assets/{blockDiagram-NRAW4CY4-C-AHu6mi.js → blockDiagram-NRAW4CY4-DHj71TSX.js} +1 -1
  330. package/web-shell/assets/{c4Diagram-UCG6FXSJ-CFjQt0vl.js → c4Diagram-UCG6FXSJ-uKBBdbyr.js} +1 -1
  331. package/web-shell/assets/channel-CXjVLaBa.js +1 -0
  332. package/web-shell/assets/{chunk-2Q5K7J3B-DRjwqaDq.js → chunk-2Q5K7J3B-BZd0Phrl.js} +1 -1
  333. package/web-shell/assets/{chunk-5VM5RSS4-eHM9noJE.js → chunk-5VM5RSS4-7KNeNBqN.js} +1 -1
  334. package/web-shell/assets/{chunk-F27PBJKO-CcSWUYn1.js → chunk-F27PBJKO-BeboS7Fi.js} +1 -1
  335. package/web-shell/assets/{chunk-G27WJ6UU-DNr-RF5S.js → chunk-G27WJ6UU-RV3JONoj.js} +1 -1
  336. package/web-shell/assets/{chunk-JWPE2WC7-rVJHoNF8.js → chunk-JWPE2WC7-Yw9FCFsP.js} +1 -1
  337. package/web-shell/assets/{chunk-LCL6LL3I-B2aX0Gzy.js → chunk-LCL6LL3I-GIMnydDe.js} +1 -1
  338. package/web-shell/assets/{chunk-POPQ4Y6H-DVp07n32.js → chunk-POPQ4Y6H-Cfrux7bL.js} +1 -1
  339. package/web-shell/assets/{chunk-SVP7TREG-C6QB_KUr.js → chunk-SVP7TREG-BlvIN0CO.js} +1 -1
  340. package/web-shell/assets/{chunk-XXDRQBXY-CLVxDNCy.js → chunk-XXDRQBXY-DMs7Rr4t.js} +1 -1
  341. package/web-shell/assets/classDiagram-DTDB5LWJ-DANEijO3.js +1 -0
  342. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DANEijO3.js +1 -0
  343. package/web-shell/assets/{cose-bilkent-JH36ORCC-B_aKX3A3.js → cose-bilkent-JH36ORCC-DNGqTNwI.js} +1 -1
  344. package/web-shell/assets/{cynefin-OW5HDTMX-BBw2pPUa.js → cynefin-OW5HDTMX-CojMpaoH.js} +1 -1
  345. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-WWPiBTwk.js → cynefinDiagram-5FMLGOSQ-DF07YXGo.js} +1 -1
  346. package/web-shell/assets/{dagre-3AP2YEHR-CPtIdka-.js → dagre-3AP2YEHR-17-4WtCH.js} +1 -1
  347. package/web-shell/assets/{diagram-S7CK7UJ4-Dj5og1Xi.js → diagram-S7CK7UJ4-G3Wuyz9m.js} +1 -1
  348. package/web-shell/assets/{diagram-UQ7AKVKN-CC_x70YC.js → diagram-UQ7AKVKN-nyWIKZ8P.js} +1 -1
  349. package/web-shell/assets/{diagram-VSXAHHWV-rXMfsO4n.js → diagram-VSXAHHWV-tKHhmYSC.js} +1 -1
  350. package/web-shell/assets/{diagram-VX7I27RA-DEmLYQbh.js → diagram-VX7I27RA-CpDf1hYk.js} +1 -1
  351. package/web-shell/assets/{diagram-Z3DM3KII-B0ys6Vxx.js → diagram-Z3DM3KII-Cah2IFXG.js} +1 -1
  352. package/web-shell/assets/{ebnfDiagram-PWID7BFC-Bq6y6lKH.js → ebnfDiagram-PWID7BFC-DNaCkgxy.js} +1 -1
  353. package/web-shell/assets/{erDiagram-SSCWMZ5O-l69JeBZ4.js → erDiagram-SSCWMZ5O-CAdRgcf1.js} +1 -1
  354. package/web-shell/assets/{flowDiagram-A5DVABFB-Cm-EzGY4.js → flowDiagram-A5DVABFB-CMUJAShL.js} +1 -1
  355. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-BRS9ZOp7.js → ganttDiagram-EL5Y4UJY-o-_MUNey.js} +1 -1
  356. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-DAMRKgLk.js → gitGraphDiagram-WWUBYQGX-_aG-2Z7O.js} +1 -1
  357. package/web-shell/assets/{index-Bncx8E8M.js → index-BK_NKxiJ.js} +1 -1
  358. package/web-shell/assets/index-Ci-z4zWY.js +1913 -0
  359. package/web-shell/assets/index-LDlXZRHA.css +36 -0
  360. package/web-shell/assets/{infoDiagram-RXCK75RN-DasffaZp.js → infoDiagram-RXCK75RN-qJPeZbGP.js} +1 -1
  361. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-CmRUt3C-.js → ishikawaDiagram-5VMMS53U-7Om4vNo1.js} +1 -1
  362. package/web-shell/assets/{journeyDiagram-EYS64GPL-DzhE_c1Z.js → journeyDiagram-EYS64GPL-BNtXqmBW.js} +1 -1
  363. package/web-shell/assets/{kanban-definition-3QL26DDD-BH5b6nn3.js → kanban-definition-3QL26DDD-COgFec8P.js} +1 -1
  364. package/web-shell/assets/{layout-BxoLK-LY.js → layout-B9n81PC9.js} +1 -1
  365. package/web-shell/assets/{linear-CqDPvVI7.js → linear-Bb6nXZQq.js} +1 -1
  366. package/web-shell/assets/{mermaid.core-DBoN4plo.js → mermaid.core-Cgrm3JVT.js} +6 -6
  367. package/web-shell/assets/{mindmap-definition-FBJOCRG2-DJJtXPEM.js → mindmap-definition-FBJOCRG2-TKwLTjnG.js} +1 -1
  368. package/web-shell/assets/{pegDiagram-XKGWAZYB-DmgPXP5l.js → pegDiagram-XKGWAZYB-BJPuvlpi.js} +1 -1
  369. package/web-shell/assets/{pieDiagram-E7YTZNPT-1ezjzcI5.js → pieDiagram-E7YTZNPT-D01VkNsW.js} +1 -1
  370. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-ChKARz3k.js → quadrantDiagram-AXDQQJYC-C4hHsiv-.js} +1 -1
  371. package/web-shell/assets/{railroadDiagram-O6MQD6OU-k7mNB_QT.js → railroadDiagram-O6MQD6OU-CuEO4xK2.js} +1 -1
  372. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-B0XFsii0.js → requirementDiagram-EFPCY7ZU-D5J_vIo5.js} +1 -1
  373. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-repJ2Ukk.js → sankeyDiagram-P5KCCOFB-DQKY223V.js} +1 -1
  374. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-D0gUSKGu.js → sequenceDiagram-WJ2MYXX4-D27YV_cm.js} +1 -1
  375. package/web-shell/assets/{sizeCapture-X5ZJPWSS-CE463F74.js → sizeCapture-X5ZJPWSS-TJg8UcwV.js} +1 -1
  376. package/web-shell/assets/{stateDiagram-HBIQ2CUA-003zYtJa.js → stateDiagram-HBIQ2CUA-CmnPzUIx.js} +1 -1
  377. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DNKPyrDc.js +1 -0
  378. package/web-shell/assets/{swimlanes-XN3QIQJK-DBj8MFpu.js → swimlanes-XN3QIQJK-ByeP3_Nu.js} +1 -1
  379. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-ZL1HPC6w.js +8 -0
  380. package/web-shell/assets/{timeline-definition-24CTP7MA-D2aCh4a9.js → timeline-definition-24CTP7MA-BsFA5juR.js} +1 -1
  381. package/web-shell/assets/{vennDiagram-4TSXK5OY-BHMfWBpl.js → vennDiagram-4TSXK5OY-DREP2ECo.js} +1 -1
  382. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-RdHAj66j.js → wardleyDiagram-VM6X3IG4-iyd9lKi2.js} +1 -1
  383. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-BgJWOvq0.js → xychartDiagram-S5SC5T6Z-CVr1_j9q.js} +1 -1
  384. package/web-shell/index.html +3 -3
  385. package/chunks/MaxSizedBox-BFVLZP2E.js +0 -112
  386. package/chunks/agent-headless-UCBCS4V4.js +0 -87
  387. package/chunks/bridge-FRNYLYY7.js +0 -119
  388. package/chunks/channel-settings-store-IV4KDL7N.js +0 -117
  389. package/chunks/chunk-I6VVOZDK.js +0 -202
  390. package/chunks/chunk-JS73NNWF.js +0 -30
  391. package/chunks/chunk-K2OJUPOE.js +0 -78
  392. package/chunks/chunk-P3QQPMQA.js +0 -19
  393. package/chunks/chunk-SDVF6A42.js +0 -945
  394. package/chunks/chunk-VGHZT6JR.js +0 -51
  395. package/chunks/config-utils-PMX4QZ5Y.js +0 -113
  396. package/chunks/contextCommand-NZRLVAFC.js +0 -108
  397. package/chunks/daemon-status-provider-FTTYZEKN.js +0 -118
  398. package/chunks/daemon-trust-policy-WMGFPA3Z.js +0 -114
  399. package/chunks/deferred-core-runtime-BUFEFYNA.js +0 -116
  400. package/chunks/earlyInputCapture-ROPLMXA7.js +0 -109
  401. package/chunks/errors-U5KNAADB.js +0 -115
  402. package/chunks/exitPlanMode-VFJ5R5DD.js +0 -85
  403. package/chunks/handleAutoUpdate-W4BUYFT7.js +0 -111
  404. package/chunks/i18n-KX7FEKJJ.js +0 -126
  405. package/chunks/initializer-SNVVLS7Y.js +0 -115
  406. package/chunks/installationInfo-D4XGQNHJ.js +0 -109
  407. package/chunks/list-WYECMLXZ.js +0 -118
  408. package/chunks/loadedSettingsAdapter-5WZBXBCR.js +0 -112
  409. package/chunks/mcp-CBWAROY3.js +0 -112
  410. package/chunks/nonInteractiveCli-O232UUV7.js +0 -185
  411. package/chunks/pidfile-MSPQ255Y.js +0 -113
  412. package/chunks/process-registry-PMJOA5CO.js +0 -172
  413. package/chunks/prompt-terminal-ledger-YPGMNDXT.js +0 -107
  414. package/chunks/resumeHistoryUtils-35D4KAVT.js +0 -120
  415. package/chunks/ripGrep-46N4FLOS.js +0 -39
  416. package/chunks/serve-WQ54UIYG.js +0 -120
  417. package/chunks/skill-settings-SKMN5YXC.js +0 -120
  418. package/chunks/spawnChannel-NE43EEO3.js +0 -113
  419. package/chunks/standalone-update-XOCWGXAH.js +0 -120
  420. package/chunks/terminal-image-renderer-NREKYTAD.js +0 -116
  421. package/chunks/theme-manager-IJS6OICX.js +0 -104
  422. package/chunks/total-session-admission-L5RPEFZ2.js +0 -114
  423. package/chunks/trustedFolders-OILZCHRD.js +0 -124
  424. package/chunks/updateCheck-AK4COHNK.js +0 -120
  425. package/chunks/useAutoAcceptIndicator-O2N2Q6KG.js +0 -122
  426. package/chunks/workspace-providers-status-OCFEWIPQ.js +0 -116
  427. package/chunks/workspace-registry-WJLZPRTG.js +0 -123
  428. package/chunks/workspace-service-5ZOBMMIB.js +0 -131
  429. package/chunks/workspace-skills-status-B6NJZD4B.js +0 -115
  430. package/chunks/write-file-B2RNX6SU.js +0 -90
  431. package/web-shell/assets/channel-CU-Zyv0r.js +0 -1
  432. package/web-shell/assets/classDiagram-DTDB5LWJ-C0J2_LKs.js +0 -1
  433. package/web-shell/assets/classDiagram-v2-JRS7N3AN-C0J2_LKs.js +0 -1
  434. package/web-shell/assets/index-C-XlQn24.css +0 -5
  435. package/web-shell/assets/index-gdvMN4J1.js +0 -1860
  436. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-2uACDdJN.js +0 -1
  437. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-C4JJkavU.js +0 -8
@@ -3,13 +3,30 @@
3
3
  import {
4
4
  require_proper_lockfile
5
5
  } from "./chunk-MLXTMF7H.js";
6
+ import {
7
+ stringifyGenAiJson
8
+ } from "./chunk-V4264FEG.js";
6
9
  import {
7
10
  atomicWriteJSON
8
- } from "./chunk-7QGEJI7M.js";
11
+ } from "./chunk-23RFD54N.js";
12
+ import {
13
+ DEFAULT_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH,
14
+ SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH_LIMIT,
15
+ SERVICE_NAME,
16
+ getMeter,
17
+ isTelemetrySdkInitialized,
18
+ isValidSensitiveSpanAttributeMaxLength
19
+ } from "./chunk-B5PHIJGI.js";
9
20
  import {
21
+ FatalConfigError,
10
22
  QWEN_DIR,
11
23
  createDebugLogger
12
- } from "./chunk-2NNTE2ED.js";
24
+ } from "./chunk-UHQFIS7N.js";
25
+ import {
26
+ ValueType,
27
+ diag,
28
+ init_esm
29
+ } from "./chunk-TBWQLLFO.js";
13
30
  import {
14
31
  init_esbuild_shims
15
32
  } from "./chunk-5O2XNYP6.js";
@@ -1730,7 +1747,7 @@ var require_log = __commonJS({
1730
1747
  console.log(...messages);
1731
1748
  }
1732
1749
  __name(debug, "debug");
1733
- function warn(logLevel, warning) {
1750
+ function warn2(logLevel, warning) {
1734
1751
  if (logLevel === "debug" || logLevel === "warn") {
1735
1752
  if (typeof node_process.emitWarning === "function")
1736
1753
  node_process.emitWarning(warning);
@@ -1738,9 +1755,9 @@ var require_log = __commonJS({
1738
1755
  console.warn(warning);
1739
1756
  }
1740
1757
  }
1741
- __name(warn, "warn");
1758
+ __name(warn2, "warn");
1742
1759
  exports.debug = debug;
1743
- exports.warn = warn;
1760
+ exports.warn = warn2;
1744
1761
  }
1745
1762
  });
1746
1763
 
@@ -7592,6 +7609,886 @@ var require_dist = __commonJS({
7592
7609
  }
7593
7610
  });
7594
7611
 
7612
+ // packages/core/src/telemetry/config.ts
7613
+ init_esbuild_shims();
7614
+
7615
+ // packages/core/src/telemetry/index.ts
7616
+ init_esbuild_shims();
7617
+
7618
+ // packages/core/src/telemetry/daemon-metrics.ts
7619
+ init_esbuild_shims();
7620
+ init_esm();
7621
+ var DAEMON_HTTP_REQUEST_COUNT = `${SERVICE_NAME}.daemon.http.request.count`;
7622
+ var DAEMON_HTTP_REQUEST_DURATION = `${SERVICE_NAME}.daemon.http.request.duration`;
7623
+ var DAEMON_SESSION_ACTIVE = `${SERVICE_NAME}.daemon.session.active`;
7624
+ var DAEMON_SESSION_LIFECYCLE = `${SERVICE_NAME}.daemon.session.lifecycle`;
7625
+ var DAEMON_CHANNEL_LIFECYCLE = `${SERVICE_NAME}.daemon.channel.lifecycle`;
7626
+ var DAEMON_PROMPT_QUEUE_WAIT = `${SERVICE_NAME}.daemon.prompt.queue_wait`;
7627
+ var DAEMON_PROMPT_DURATION = `${SERVICE_NAME}.daemon.prompt.duration`;
7628
+ var DAEMON_BRIDGE_ERROR_COUNT = `${SERVICE_NAME}.daemon.bridge.error.count`;
7629
+ var DAEMON_CANCEL_COUNT = `${SERVICE_NAME}.daemon.cancel.count`;
7630
+ var DAEMON_PIPE_MESSAGE_BYTES = `${SERVICE_NAME}.daemon.pipe.message_bytes`;
7631
+ var DAEMON_SSE_ACTIVE = `${SERVICE_NAME}.daemon.sse.active`;
7632
+ var DAEMON_PROCESS_HEAP_USED = `${SERVICE_NAME}.daemon.process.heap_used`;
7633
+ var KNOWN_ERROR_TYPES = /* @__PURE__ */ new Set([
7634
+ "SessionNotFoundError",
7635
+ "WorkspaceMismatchError",
7636
+ "InvalidClientIdError",
7637
+ "SessionLimitExceededError",
7638
+ "RestoreInProgressError",
7639
+ "InvalidSessionScopeError",
7640
+ "TrustGateError",
7641
+ "WorkspaceInitConflictError",
7642
+ "WorkspaceInitPathEscapeError",
7643
+ "WorkspaceInitSymlinkError",
7644
+ "WorkspaceInitRaceError",
7645
+ "McpServerNotFoundError",
7646
+ "McpServerRestartFailedError",
7647
+ "PromptDeadlineExceededError",
7648
+ "InvalidSessionMetadataError",
7649
+ "SubscriberLimitExceededError",
7650
+ "BridgeChannelClosedError",
7651
+ "BridgeTimeoutError",
7652
+ "SessionRestoreTimeoutError",
7653
+ "BridgeChannelQuarantinedError",
7654
+ "PermissionForbiddenError"
7655
+ ]);
7656
+ var initialized = false;
7657
+ var httpRequestCounter;
7658
+ var httpRequestDurationHistogram;
7659
+ var sessionLifecycleCounter;
7660
+ var channelLifecycleCounter;
7661
+ var promptQueueWaitHistogram;
7662
+ var promptDurationHistogram;
7663
+ var bridgeErrorCounter;
7664
+ var cancelCounter;
7665
+ var pipeMessageBytesHistogram;
7666
+ function normalizeErrorType(err) {
7667
+ const name = err instanceof Error ? err.name : typeof err;
7668
+ return KNOWN_ERROR_TYPES.has(name) ? name : "unknown";
7669
+ }
7670
+ __name(normalizeErrorType, "normalizeErrorType");
7671
+ function initializeDaemonMetrics() {
7672
+ if (initialized) return;
7673
+ const meter = getMeter();
7674
+ if (!meter) return;
7675
+ httpRequestCounter = meter.createCounter(DAEMON_HTTP_REQUEST_COUNT, {
7676
+ description: "Daemon HTTP request count by route and status class.",
7677
+ valueType: ValueType.INT
7678
+ });
7679
+ httpRequestDurationHistogram = meter.createHistogram(
7680
+ DAEMON_HTTP_REQUEST_DURATION,
7681
+ {
7682
+ description: "Daemon HTTP request duration in milliseconds.",
7683
+ unit: "ms",
7684
+ valueType: ValueType.DOUBLE,
7685
+ advice: {
7686
+ explicitBucketBoundaries: [
7687
+ 1,
7688
+ 2,
7689
+ 5,
7690
+ 10,
7691
+ 25,
7692
+ 50,
7693
+ 100,
7694
+ 250,
7695
+ 500,
7696
+ 1e3,
7697
+ 2500,
7698
+ 5e3,
7699
+ 1e4,
7700
+ 3e4
7701
+ ]
7702
+ }
7703
+ }
7704
+ );
7705
+ sessionLifecycleCounter = meter.createCounter(DAEMON_SESSION_LIFECYCLE, {
7706
+ description: "Daemon session lifecycle events (spawn, close, die).",
7707
+ valueType: ValueType.INT
7708
+ });
7709
+ channelLifecycleCounter = meter.createCounter(DAEMON_CHANNEL_LIFECYCLE, {
7710
+ description: "Daemon ACP channel lifecycle events (spawn, exit).",
7711
+ valueType: ValueType.INT
7712
+ });
7713
+ promptQueueWaitHistogram = meter.createHistogram(DAEMON_PROMPT_QUEUE_WAIT, {
7714
+ description: "Time a prompt waited in the per-session FIFO queue.",
7715
+ unit: "ms",
7716
+ valueType: ValueType.DOUBLE,
7717
+ advice: {
7718
+ explicitBucketBoundaries: [
7719
+ 1,
7720
+ 5,
7721
+ 10,
7722
+ 50,
7723
+ 100,
7724
+ 500,
7725
+ 1e3,
7726
+ 5e3,
7727
+ 1e4,
7728
+ 3e4,
7729
+ 6e4
7730
+ ]
7731
+ }
7732
+ });
7733
+ promptDurationHistogram = meter.createHistogram(DAEMON_PROMPT_DURATION, {
7734
+ description: "End-to-end prompt duration from dispatch to completion.",
7735
+ unit: "ms",
7736
+ valueType: ValueType.DOUBLE,
7737
+ advice: {
7738
+ explicitBucketBoundaries: [
7739
+ 100,
7740
+ 500,
7741
+ 1e3,
7742
+ 2500,
7743
+ 5e3,
7744
+ 1e4,
7745
+ 3e4,
7746
+ 6e4,
7747
+ 12e4,
7748
+ 3e5,
7749
+ 6e5
7750
+ ]
7751
+ }
7752
+ });
7753
+ bridgeErrorCounter = meter.createCounter(DAEMON_BRIDGE_ERROR_COUNT, {
7754
+ description: "Daemon bridge error count by normalized error type.",
7755
+ valueType: ValueType.INT
7756
+ });
7757
+ cancelCounter = meter.createCounter(DAEMON_CANCEL_COUNT, {
7758
+ description: "Daemon cancel request count.",
7759
+ valueType: ValueType.INT
7760
+ });
7761
+ pipeMessageBytesHistogram = meter.createHistogram(DAEMON_PIPE_MESSAGE_BYTES, {
7762
+ description: "Daemon ACP child pipe message payload size in bytes.",
7763
+ unit: "By",
7764
+ valueType: ValueType.INT,
7765
+ advice: {
7766
+ explicitBucketBoundaries: [
7767
+ 256,
7768
+ 1024,
7769
+ 4096,
7770
+ 16384,
7771
+ 65536,
7772
+ 262144,
7773
+ 1048576,
7774
+ 4194304,
7775
+ 16777216
7776
+ ]
7777
+ }
7778
+ });
7779
+ initialized = true;
7780
+ }
7781
+ __name(initializeDaemonMetrics, "initializeDaemonMetrics");
7782
+ var gaugesRegistered = false;
7783
+ function registerDaemonGaugeCallbacks(callbacks) {
7784
+ if (gaugesRegistered) return;
7785
+ const meter = getMeter();
7786
+ if (!meter) return;
7787
+ meter.createObservableGauge(DAEMON_SESSION_ACTIVE, {
7788
+ description: "Current number of active daemon sessions.",
7789
+ valueType: ValueType.INT
7790
+ }).addCallback((result) => {
7791
+ try {
7792
+ result.observe(callbacks.sessionCount());
7793
+ } catch {
7794
+ }
7795
+ });
7796
+ meter.createObservableGauge(DAEMON_SSE_ACTIVE, {
7797
+ description: "Current number of active SSE connections.",
7798
+ valueType: ValueType.INT
7799
+ }).addCallback((result) => {
7800
+ try {
7801
+ result.observe(callbacks.sseCount());
7802
+ } catch {
7803
+ }
7804
+ });
7805
+ meter.createObservableGauge(DAEMON_PROCESS_HEAP_USED, {
7806
+ description: "Daemon process heap memory usage in bytes.",
7807
+ unit: "bytes",
7808
+ valueType: ValueType.INT
7809
+ }).addCallback((result) => {
7810
+ try {
7811
+ result.observe(callbacks.heapUsed());
7812
+ } catch {
7813
+ }
7814
+ });
7815
+ gaugesRegistered = true;
7816
+ }
7817
+ __name(registerDaemonGaugeCallbacks, "registerDaemonGaugeCallbacks");
7818
+ function recordDaemonHttpRequest(durationMs, route, statusCode, deferredRuntimePath) {
7819
+ if (!initialized) return;
7820
+ const statusClass = `${Math.floor(statusCode / 100)}xx`;
7821
+ httpRequestCounter?.add(1, { route, status_class: statusClass });
7822
+ httpRequestDurationHistogram?.record(durationMs, {
7823
+ route,
7824
+ runtime_path: deferredRuntimePath ?? "none"
7825
+ });
7826
+ }
7827
+ __name(recordDaemonHttpRequest, "recordDaemonHttpRequest");
7828
+ function recordDaemonSessionLifecycle(action) {
7829
+ if (!initialized) return;
7830
+ sessionLifecycleCounter?.add(1, { action });
7831
+ }
7832
+ __name(recordDaemonSessionLifecycle, "recordDaemonSessionLifecycle");
7833
+ function recordDaemonChannelLifecycle(action, expected) {
7834
+ if (!initialized) return;
7835
+ channelLifecycleCounter?.add(1, {
7836
+ action,
7837
+ ...expected != null ? { expected } : {}
7838
+ });
7839
+ }
7840
+ __name(recordDaemonChannelLifecycle, "recordDaemonChannelLifecycle");
7841
+ function recordDaemonPromptQueueWait(durationMs) {
7842
+ if (!initialized) return;
7843
+ promptQueueWaitHistogram?.record(durationMs);
7844
+ }
7845
+ __name(recordDaemonPromptQueueWait, "recordDaemonPromptQueueWait");
7846
+ function recordDaemonPromptDuration(durationMs) {
7847
+ if (!initialized) return;
7848
+ promptDurationHistogram?.record(durationMs);
7849
+ }
7850
+ __name(recordDaemonPromptDuration, "recordDaemonPromptDuration");
7851
+ function recordDaemonBridgeError(err) {
7852
+ if (!initialized) return;
7853
+ bridgeErrorCounter?.add(1, { error_type: normalizeErrorType(err) });
7854
+ }
7855
+ __name(recordDaemonBridgeError, "recordDaemonBridgeError");
7856
+ function recordDaemonCancel() {
7857
+ if (!initialized) return;
7858
+ cancelCounter?.add(1);
7859
+ }
7860
+ __name(recordDaemonCancel, "recordDaemonCancel");
7861
+ function recordDaemonPipeMessage(direction, bytes) {
7862
+ if (!initialized) return;
7863
+ pipeMessageBytesHistogram?.record(bytes, { direction });
7864
+ }
7865
+ __name(recordDaemonPipeMessage, "recordDaemonPipeMessage");
7866
+
7867
+ // packages/core/src/telemetry/event-loop-lag.ts
7868
+ init_esbuild_shims();
7869
+ import { monitorEventLoopDelay } from "node:perf_hooks";
7870
+ var DEFAULT_RESOLUTION_MS = 20;
7871
+ var DEFAULT_STALL_THRESHOLD_MS = 1e3;
7872
+ var DEFAULT_EVENT_LOOP_SUSPEND_THRESHOLD_MS = 5 * 60 * 1e3;
7873
+ var DEFAULT_SUSPEND_CPU_RATIO = 0.01;
7874
+ var NS_PER_MS = 1e6;
7875
+ function startEventLoopLagMonitor(options = {}) {
7876
+ const resolutionMs = positiveFiniteOrDefault(
7877
+ options.resolutionMs,
7878
+ DEFAULT_RESOLUTION_MS
7879
+ );
7880
+ const stallThresholdMs = positiveFiniteOrDefault(
7881
+ options.stallThresholdMs,
7882
+ DEFAULT_STALL_THRESHOLD_MS
7883
+ );
7884
+ const suspendThresholdMs = positiveFiniteOrDefault(
7885
+ options.suspendThresholdMs,
7886
+ DEFAULT_EVENT_LOOP_SUSPEND_THRESHOLD_MS
7887
+ );
7888
+ const suspendCpuRatio = fractionOrDefault(
7889
+ options.suspendCpuRatio,
7890
+ DEFAULT_SUSPEND_CPU_RATIO
7891
+ );
7892
+ const histogram = monitorEventLoopDelay({ resolution: resolutionMs });
7893
+ histogram.enable();
7894
+ let disposed = false;
7895
+ let lastReportedMaxMs = 0;
7896
+ let lastObservedMaxMs = 0;
7897
+ let lastCheckTimeMs = Date.now();
7898
+ let lastCpuUsage = safeCpuUsage();
7899
+ let pendingSuspendGapMs = 0;
7900
+ const readMaxMs = /* @__PURE__ */ __name(() => nsToMs(histogram.max), "readMaxMs");
7901
+ const checkHistogram = /* @__PURE__ */ __name(() => {
7902
+ if (disposed) return;
7903
+ const nowMs = Date.now();
7904
+ const cpuUsage = safeCpuUsage();
7905
+ const elapsedMs = Math.max(0, nowMs - lastCheckTimeMs);
7906
+ const maxMs = readMaxMs();
7907
+ const newMaxMs = maxMs > lastObservedMaxMs ? maxMs : 0;
7908
+ const cpuRatio = calculateCpuRatio(lastCpuUsage, cpuUsage, elapsedMs);
7909
+ lastCheckTimeMs = nowMs;
7910
+ if (cpuUsage) lastCpuUsage = cpuUsage;
7911
+ lastObservedMaxMs = maxMs;
7912
+ const isLowCpuGap = elapsedMs >= suspendThresholdMs && cpuRatio !== void 0 && cpuRatio <= suspendCpuRatio;
7913
+ const suspendGapMs = isLowCpuGap ? elapsedMs : pendingSuspendGapMs;
7914
+ pendingSuspendGapMs = isLowCpuGap ? elapsedMs : 0;
7915
+ if (newMaxMs >= suspendThresholdMs && suspendGapMs >= suspendThresholdMs && newMaxMs <= suspendGapMs * 1.5) {
7916
+ histogram.reset();
7917
+ lastObservedMaxMs = 0;
7918
+ lastReportedMaxMs = 0;
7919
+ pendingSuspendGapMs = 0;
7920
+ return;
7921
+ }
7922
+ if (options.onNewMaxStall && maxMs >= stallThresholdMs && maxMs > lastReportedMaxMs) {
7923
+ lastReportedMaxMs = maxMs;
7924
+ try {
7925
+ options.onNewMaxStall(maxMs);
7926
+ } catch {
7927
+ }
7928
+ }
7929
+ }, "checkHistogram");
7930
+ const interval = setInterval(checkHistogram, resolutionMs);
7931
+ interval.unref();
7932
+ return {
7933
+ snapshot() {
7934
+ return {
7935
+ meanMs: nsToMs(histogram.mean),
7936
+ p50Ms: nsToMs(histogram.percentile(50)),
7937
+ p99Ms: nsToMs(histogram.percentile(99)),
7938
+ maxMs: readMaxMs()
7939
+ };
7940
+ },
7941
+ dispose() {
7942
+ if (disposed) return;
7943
+ disposed = true;
7944
+ clearInterval(interval);
7945
+ histogram.disable();
7946
+ }
7947
+ };
7948
+ }
7949
+ __name(startEventLoopLagMonitor, "startEventLoopLagMonitor");
7950
+ function safeCpuUsage() {
7951
+ try {
7952
+ return process.cpuUsage();
7953
+ } catch {
7954
+ return void 0;
7955
+ }
7956
+ }
7957
+ __name(safeCpuUsage, "safeCpuUsage");
7958
+ function calculateCpuRatio(previous, current, elapsedMs) {
7959
+ if (!previous || !current || elapsedMs <= 0) return void 0;
7960
+ const cpuMicroseconds = current.user - previous.user + (current.system - previous.system);
7961
+ return Math.max(0, cpuMicroseconds / (elapsedMs * 1e3));
7962
+ }
7963
+ __name(calculateCpuRatio, "calculateCpuRatio");
7964
+ function nsToMs(value) {
7965
+ return Number.isFinite(value) ? value / NS_PER_MS : 0;
7966
+ }
7967
+ __name(nsToMs, "nsToMs");
7968
+ function positiveFiniteOrDefault(value, fallback) {
7969
+ return value !== void 0 && Number.isFinite(value) && value > 0 ? value : fallback;
7970
+ }
7971
+ __name(positiveFiniteOrDefault, "positiveFiniteOrDefault");
7972
+ function fractionOrDefault(value, fallback) {
7973
+ return value !== void 0 && Number.isFinite(value) && value >= 0 && value <= 1 ? value : fallback;
7974
+ }
7975
+ __name(fractionOrDefault, "fractionOrDefault");
7976
+
7977
+ // packages/core/src/telemetry/event-loop-lag-metrics.ts
7978
+ init_esbuild_shims();
7979
+ init_esm();
7980
+ var DAEMON_EVENT_LOOP_LAG = `${SERVICE_NAME}.daemon.event_loop.lag`;
7981
+ var ACP_EVENT_LOOP_LAG = `${SERVICE_NAME}.acp.event_loop.lag`;
7982
+ var daemonGaugeRegistered = false;
7983
+ var acpGaugeRegistered = false;
7984
+ function registerDaemonEventLoopLagGauge(read) {
7985
+ if (daemonGaugeRegistered) return;
7986
+ daemonGaugeRegistered = registerEventLoopLagGauge(
7987
+ DAEMON_EVENT_LOOP_LAG,
7988
+ read
7989
+ );
7990
+ }
7991
+ __name(registerDaemonEventLoopLagGauge, "registerDaemonEventLoopLagGauge");
7992
+ function registerAcpEventLoopLagGauge(read) {
7993
+ if (acpGaugeRegistered) return;
7994
+ acpGaugeRegistered = registerEventLoopLagGauge(ACP_EVENT_LOOP_LAG, read);
7995
+ }
7996
+ __name(registerAcpEventLoopLagGauge, "registerAcpEventLoopLagGauge");
7997
+ function registerEventLoopLagGauge(name, read) {
7998
+ const meter = getMeter();
7999
+ if (!meter) return false;
8000
+ meter.createObservableGauge(name, {
8001
+ description: "Event loop lag in milliseconds.",
8002
+ unit: "ms",
8003
+ valueType: ValueType.DOUBLE
8004
+ }).addCallback((result) => {
8005
+ try {
8006
+ const snapshot = read();
8007
+ result.observe(snapshot.meanMs, { stat: "mean" });
8008
+ result.observe(snapshot.p50Ms, { stat: "p50" });
8009
+ result.observe(snapshot.p99Ms, { stat: "p99" });
8010
+ result.observe(snapshot.maxMs, { stat: "max" });
8011
+ } catch {
8012
+ }
8013
+ });
8014
+ return true;
8015
+ }
8016
+ __name(registerEventLoopLagGauge, "registerEventLoopLagGauge");
8017
+
8018
+ // packages/core/src/telemetry/detailed-span-attributes.ts
8019
+ init_esbuild_shims();
8020
+ var SHORT_TRUNCATION_SUFFIX = "...[TRUNCATED]";
8021
+ var debugLogger = createDebugLogger("GEN_AI_CONTENT");
8022
+ function areSensitiveSpanAttributesEnabled(config) {
8023
+ return isTelemetrySdkInitialized() && config.getTelemetryIncludeSensitiveSpanAttributes();
8024
+ }
8025
+ __name(areSensitiveSpanAttributesEnabled, "areSensitiveSpanAttributesEnabled");
8026
+ function truncateContent(content, maxSize = DEFAULT_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH, originalLength = content.length) {
8027
+ if (!Number.isSafeInteger(maxSize) || maxSize < 1) {
8028
+ throw new TypeError(
8029
+ `maxSize must be a positive safe integer, got ${String(maxSize)}`
8030
+ );
8031
+ }
8032
+ if (!Number.isSafeInteger(originalLength) || originalLength < 0) {
8033
+ throw new TypeError(
8034
+ `originalLength must be a non-negative safe integer, got ${String(
8035
+ originalLength
8036
+ )}`
8037
+ );
8038
+ }
8039
+ if (originalLength < content.length) {
8040
+ throw new TypeError(
8041
+ `originalLength must be greater than or equal to content length, got ${originalLength} for content length ${content.length}`
8042
+ );
8043
+ }
8044
+ if (originalLength <= maxSize && content.length <= maxSize) {
8045
+ return { content, truncated: false };
8046
+ }
8047
+ if (originalLength > content.length && content.length <= maxSize) {
8048
+ return { content, truncated: true };
8049
+ }
8050
+ const suffix = `
8051
+
8052
+ [TRUNCATED - Content exceeds configured limit of ${maxSize} characters]`;
8053
+ if (suffix.length >= maxSize) {
8054
+ if (SHORT_TRUNCATION_SUFFIX.length >= maxSize) {
8055
+ return {
8056
+ content: SHORT_TRUNCATION_SUFFIX.slice(0, maxSize),
8057
+ truncated: true
8058
+ };
8059
+ }
8060
+ return {
8061
+ content: content.slice(0, maxSize - SHORT_TRUNCATION_SUFFIX.length) + SHORT_TRUNCATION_SUFFIX,
8062
+ truncated: true
8063
+ };
8064
+ }
8065
+ return {
8066
+ content: content.slice(0, maxSize - suffix.length) + suffix,
8067
+ truncated: true
8068
+ };
8069
+ }
8070
+ __name(truncateContent, "truncateContent");
8071
+ function getMaxContentSize(config) {
8072
+ return config.getTelemetrySensitiveSpanAttributeMaxLength();
8073
+ }
8074
+ __name(getMaxContentSize, "getMaxContentSize");
8075
+ function truncatePrefixedContent(prefix, content, maxSize) {
8076
+ const prefixedContent = `${prefix}${content}`;
8077
+ const result = truncateContent(prefixedContent, maxSize);
8078
+ return {
8079
+ ...result,
8080
+ originalLength: content.length
8081
+ };
8082
+ }
8083
+ __name(truncatePrefixedContent, "truncatePrefixedContent");
8084
+ function addAgentInputMessageAttributes(config, span, promptText) {
8085
+ if (!areSensitiveSpanAttributesEnabled(config) || promptText.trim().length === 0) {
8086
+ return;
8087
+ }
8088
+ writeJsonAttribute(config, span, "gen_ai.input.messages", [
8089
+ {
8090
+ role: "user",
8091
+ parts: [{ type: "text", content: promptText }]
8092
+ }
8093
+ ]);
8094
+ }
8095
+ __name(addAgentInputMessageAttributes, "addAgentInputMessageAttributes");
8096
+ function addAgentOutputMessageAttributes(config, span, responseText, finishReason) {
8097
+ if (!areSensitiveSpanAttributesEnabled(config) || responseText.trim().length === 0) {
8098
+ return;
8099
+ }
8100
+ const reason = normalizeAgentFinishReason(finishReason);
8101
+ if (!reason) return;
8102
+ writeJsonAttribute(config, span, "gen_ai.output.messages", [
8103
+ {
8104
+ role: "assistant",
8105
+ parts: [{ type: "text", content: responseText }],
8106
+ finish_reason: reason
8107
+ }
8108
+ ]);
8109
+ }
8110
+ __name(addAgentOutputMessageAttributes, "addAgentOutputMessageAttributes");
8111
+ function normalizeAgentFinishReason(finishReason) {
8112
+ const reason = finishReason?.trim().toLowerCase();
8113
+ if (!reason || reason === "finish_reason_unspecified") return void 0;
8114
+ if (reason === "stop") return "stop";
8115
+ if (reason === "max_tokens") return "length";
8116
+ if (reason === "tool_calls" || reason === "function_call" || reason === "tool_call") {
8117
+ return "tool_call";
8118
+ }
8119
+ if (reason === "safety" || reason === "recitation" || reason === "language" || reason === "blocklist" || reason === "prohibited_content" || reason === "spii" || reason === "image_safety" || reason === "image_prohibited_content" || reason === "image_recitation" || reason === "image_other") {
8120
+ return "content_filter";
8121
+ }
8122
+ return reason;
8123
+ }
8124
+ __name(normalizeAgentFinishReason, "normalizeAgentFinishReason");
8125
+ var AgentOutputMessageCapture = class {
8126
+ constructor(config) {
8127
+ this.config = config;
8128
+ this.enabled = areSensitiveSpanAttributesEnabled(config);
8129
+ this.maxLength = this.enabled ? config.getTelemetrySensitiveSpanAttributeMaxLength() : 0;
8130
+ }
8131
+ static {
8132
+ __name(this, "AgentOutputMessageCapture");
8133
+ }
8134
+ enabled;
8135
+ maxLength;
8136
+ responseText = "";
8137
+ finishReason;
8138
+ overflow = false;
8139
+ committed;
8140
+ beginResponse() {
8141
+ if (!this.enabled) return;
8142
+ this.clearResponse();
8143
+ this.committed = void 0;
8144
+ }
8145
+ appendText(text) {
8146
+ if (!this.enabled || !text || this.overflow) return;
8147
+ const remaining = this.maxLength - this.responseText.length;
8148
+ if (text.length > remaining) {
8149
+ this.responseText = "";
8150
+ this.overflow = true;
8151
+ this.committed = void 0;
8152
+ return;
8153
+ }
8154
+ this.responseText += text;
8155
+ }
8156
+ observeFinishReason(finishReason) {
8157
+ if (!this.enabled) return;
8158
+ const normalized = normalizeAgentFinishReason(finishReason);
8159
+ if (normalized) this.finishReason = normalized;
8160
+ }
8161
+ restartAttempt(preserveText) {
8162
+ if (!this.enabled) return;
8163
+ if (!preserveText) {
8164
+ this.clearResponse();
8165
+ } else {
8166
+ this.finishReason = void 0;
8167
+ }
8168
+ this.committed = void 0;
8169
+ }
8170
+ commitResponse(hasToolCalls) {
8171
+ if (!this.enabled || hasToolCalls || this.overflow || this.responseText.trim().length === 0 || !this.finishReason) {
8172
+ this.committed = void 0;
8173
+ return;
8174
+ }
8175
+ this.committed = {
8176
+ responseText: this.responseText,
8177
+ finishReason: this.finishReason
8178
+ };
8179
+ }
8180
+ writeToSpan(span) {
8181
+ if (!span || !this.committed) return;
8182
+ addAgentOutputMessageAttributes(
8183
+ this.config,
8184
+ span,
8185
+ this.committed.responseText,
8186
+ this.committed.finishReason
8187
+ );
8188
+ }
8189
+ clearResponse() {
8190
+ this.responseText = "";
8191
+ this.finishReason = void 0;
8192
+ this.overflow = false;
8193
+ }
8194
+ };
8195
+ function addUserPromptAttributes(config, span, promptText) {
8196
+ if (!areSensitiveSpanAttributesEnabled(config) || !promptText) return;
8197
+ const { content, truncated, originalLength } = truncatePrefixedContent(
8198
+ `[USER PROMPT]
8199
+ `,
8200
+ promptText,
8201
+ getMaxContentSize(config)
8202
+ );
8203
+ span.setAttributes({
8204
+ new_context: content,
8205
+ ...truncated && {
8206
+ new_context_truncated: true,
8207
+ new_context_original_length: originalLength
8208
+ }
8209
+ });
8210
+ }
8211
+ __name(addUserPromptAttributes, "addUserPromptAttributes");
8212
+ function addToolArgumentsAttributes(config, span, argumentsValue) {
8213
+ if (!areSensitiveSpanAttributesEnabled(config)) return;
8214
+ writeJsonAttribute(
8215
+ config,
8216
+ span,
8217
+ "gen_ai.tool.call.arguments",
8218
+ argumentsValue,
8219
+ true
8220
+ );
8221
+ }
8222
+ __name(addToolArgumentsAttributes, "addToolArgumentsAttributes");
8223
+ function addToolCallResultAttributes(config, span, result) {
8224
+ if (!areSensitiveSpanAttributesEnabled(config)) return;
8225
+ writeJsonAttribute(config, span, "gen_ai.tool.call.result", result, true);
8226
+ }
8227
+ __name(addToolCallResultAttributes, "addToolCallResultAttributes");
8228
+ function writeJsonAttribute(config, span, key, value, requireObject = false) {
8229
+ let serialized;
8230
+ try {
8231
+ serialized = stringifyGenAiJson(
8232
+ value,
8233
+ getMaxContentSize(config),
8234
+ requireObject
8235
+ );
8236
+ } catch {
8237
+ debugLogger.debug(`Failed to serialize ${key} span attribute`);
8238
+ return;
8239
+ }
8240
+ if (serialized === void 0) return;
8241
+ try {
8242
+ span.setAttribute(key, serialized);
8243
+ } catch {
8244
+ debugLogger.debug(`Failed to set ${key} span attribute`);
8245
+ }
8246
+ }
8247
+ __name(writeJsonAttribute, "writeJsonAttribute");
8248
+
8249
+ // packages/core/src/telemetry/index.ts
8250
+ var DEFAULT_TELEMETRY_TARGET = "local" /* LOCAL */;
8251
+ var DEFAULT_OTLP_ENDPOINT = "http://localhost:4317";
8252
+
8253
+ // packages/core/src/telemetry/resource-attributes.ts
8254
+ init_esbuild_shims();
8255
+ init_esm();
8256
+ var RESERVED_RESOURCE_ATTRIBUTE_KEYS = /* @__PURE__ */ new Set([
8257
+ "service.version",
8258
+ "session.id"
8259
+ ]);
8260
+ function warn(msg, warnings) {
8261
+ diag.warn(msg);
8262
+ warnings?.push(msg);
8263
+ }
8264
+ __name(warn, "warn");
8265
+ function parseOtelResourceAttributes(raw, warnings) {
8266
+ if (!raw) return {};
8267
+ const out = {};
8268
+ for (const pair of raw.split(",")) {
8269
+ const trimmed = pair.trim();
8270
+ if (!trimmed) continue;
8271
+ const idx = trimmed.indexOf("=");
8272
+ if (idx < 0) {
8273
+ warn(
8274
+ `Skipping malformed OTEL_RESOURCE_ATTRIBUTES entry: "${trimmed}" (hint: percent-encode literal commas as %2C)`,
8275
+ warnings
8276
+ );
8277
+ continue;
8278
+ }
8279
+ const rawKey = trimmed.slice(0, idx).trim();
8280
+ if (!rawKey) continue;
8281
+ const valueRaw = trimmed.slice(idx + 1).trim();
8282
+ let key;
8283
+ try {
8284
+ key = decodeURIComponent(rawKey);
8285
+ } catch {
8286
+ warn(
8287
+ `Invalid percent-encoding in OTEL_RESOURCE_ATTRIBUTES key "${rawKey}", using raw key`,
8288
+ warnings
8289
+ );
8290
+ key = rawKey;
8291
+ }
8292
+ let value;
8293
+ try {
8294
+ value = decodeURIComponent(valueRaw);
8295
+ } catch {
8296
+ warn(
8297
+ `Invalid percent-encoding in OTEL_RESOURCE_ATTRIBUTES for key "${key}", using raw value`,
8298
+ warnings
8299
+ );
8300
+ value = valueRaw;
8301
+ }
8302
+ out[key] = value;
8303
+ }
8304
+ return out;
8305
+ }
8306
+ __name(parseOtelResourceAttributes, "parseOtelResourceAttributes");
8307
+ function stripReservedResourceAttributes(attrs, source, warnings) {
8308
+ for (const k of RESERVED_RESOURCE_ATTRIBUTE_KEYS) {
8309
+ if (k in attrs) {
8310
+ warn(`${source} cannot override reserved key "${k}"; ignoring`, warnings);
8311
+ delete attrs[k];
8312
+ }
8313
+ }
8314
+ return attrs;
8315
+ }
8316
+ __name(stripReservedResourceAttributes, "stripReservedResourceAttributes");
8317
+ function coerceStringResourceAttributes(raw, warnings) {
8318
+ if (raw === null || raw === void 0) return {};
8319
+ if (typeof raw !== "object" || Array.isArray(raw)) {
8320
+ warn(
8321
+ "settings.telemetry.resourceAttributes must be an object; ignoring",
8322
+ warnings
8323
+ );
8324
+ return {};
8325
+ }
8326
+ const out = {};
8327
+ for (const [k, v] of Object.entries(raw)) {
8328
+ const key = k.trim();
8329
+ if (!key) {
8330
+ warn(
8331
+ "settings.telemetry.resourceAttributes has an empty or whitespace-only key; ignoring",
8332
+ warnings
8333
+ );
8334
+ continue;
8335
+ }
8336
+ if (typeof v === "string") {
8337
+ out[key] = v;
8338
+ } else {
8339
+ warn(
8340
+ `settings.telemetry.resourceAttributes value for "${key}" must be a string (got ${typeof v}); ignoring`,
8341
+ warnings
8342
+ );
8343
+ }
8344
+ }
8345
+ return out;
8346
+ }
8347
+ __name(coerceStringResourceAttributes, "coerceStringResourceAttributes");
8348
+
8349
+ // packages/core/src/telemetry/config.ts
8350
+ function parseBooleanEnvFlag(value) {
8351
+ if (value === void 0) return void 0;
8352
+ return value === "true" || value === "1";
8353
+ }
8354
+ __name(parseBooleanEnvFlag, "parseBooleanEnvFlag");
8355
+ function parseTelemetryTargetValue(value) {
8356
+ if (value === void 0) return void 0;
8357
+ if (value === "local" /* LOCAL */ || value === "local") {
8358
+ return "local" /* LOCAL */;
8359
+ }
8360
+ if (value === "gcp" /* GCP */ || value === "gcp") {
8361
+ return "gcp" /* GCP */;
8362
+ }
8363
+ return void 0;
8364
+ }
8365
+ __name(parseTelemetryTargetValue, "parseTelemetryTargetValue");
8366
+ function parseSensitiveSpanAttributeMaxLengthEnvValue(envName, value) {
8367
+ if (value === void 0) return void 0;
8368
+ const trimmed = value.trim();
8369
+ const parsed = Number(trimmed);
8370
+ if (!/^\d+$/.test(trimmed) || !isValidSensitiveSpanAttributeMaxLength(parsed)) {
8371
+ throw new FatalConfigError(
8372
+ `Invalid ${envName}: must be a positive integer no greater than ${SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH_LIMIT}, got '${value}'`
8373
+ );
8374
+ }
8375
+ return parsed;
8376
+ }
8377
+ __name(parseSensitiveSpanAttributeMaxLengthEnvValue, "parseSensitiveSpanAttributeMaxLengthEnvValue");
8378
+ function parseSensitiveSpanAttributeMaxLengthSetting(settingName, value) {
8379
+ if (value === void 0) return void 0;
8380
+ if (typeof value !== "number" || !isValidSensitiveSpanAttributeMaxLength(value)) {
8381
+ throw new FatalConfigError(
8382
+ `Invalid ${settingName}: must be a positive integer no greater than ${SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH_LIMIT}, got ${String(
8383
+ value
8384
+ )}`
8385
+ );
8386
+ }
8387
+ return value;
8388
+ }
8389
+ __name(parseSensitiveSpanAttributeMaxLengthSetting, "parseSensitiveSpanAttributeMaxLengthSetting");
8390
+ function parseTelemetryUserId(source, value) {
8391
+ if (value === void 0) return void 0;
8392
+ if (typeof value !== "string") {
8393
+ throw new FatalConfigError(
8394
+ `Invalid ${source}: must be a string, got ${typeof value}`
8395
+ );
8396
+ }
8397
+ return value.trim() || void 0;
8398
+ }
8399
+ __name(parseTelemetryUserId, "parseTelemetryUserId");
8400
+ async function resolveTelemetrySettings(options) {
8401
+ const argv = options.argv ?? {};
8402
+ const env = options.env ?? {};
8403
+ const settings = options.settings ?? {};
8404
+ const enabled = argv.telemetry ?? parseBooleanEnvFlag(env["QWEN_TELEMETRY_ENABLED"]) ?? settings.enabled;
8405
+ const rawTarget = argv.telemetryTarget ?? env["QWEN_TELEMETRY_TARGET"] ?? settings.target;
8406
+ const target = parseTelemetryTargetValue(rawTarget);
8407
+ if (rawTarget !== void 0 && target === void 0) {
8408
+ throw new FatalConfigError(
8409
+ `Invalid telemetry target: ${String(
8410
+ rawTarget
8411
+ )}. Valid values are: local, gcp`
8412
+ );
8413
+ }
8414
+ const otlpEndpoint = argv.telemetryOtlpEndpoint ?? env["QWEN_TELEMETRY_OTLP_ENDPOINT"] ?? env["OTEL_EXPORTER_OTLP_ENDPOINT"] ?? settings.otlpEndpoint;
8415
+ const rawProtocol = argv.telemetryOtlpProtocol ?? env["QWEN_TELEMETRY_OTLP_PROTOCOL"] ?? settings.otlpProtocol;
8416
+ const otlpProtocol = ["grpc", "http"].find(
8417
+ (p) => p === rawProtocol
8418
+ );
8419
+ if (rawProtocol !== void 0 && otlpProtocol === void 0) {
8420
+ throw new FatalConfigError(
8421
+ `Invalid telemetry OTLP protocol: ${String(
8422
+ rawProtocol
8423
+ )}. Valid values are: grpc, http`
8424
+ );
8425
+ }
8426
+ const logPrompts = argv.telemetryLogPrompts ?? parseBooleanEnvFlag(env["QWEN_TELEMETRY_LOG_PROMPTS"]) ?? settings.logPrompts;
8427
+ const userId = parseTelemetryUserId(
8428
+ "QWEN_TELEMETRY_USER_ID",
8429
+ env["QWEN_TELEMETRY_USER_ID"]
8430
+ ) ?? parseTelemetryUserId("telemetry.userId", settings.userId);
8431
+ const includeSensitiveSpanAttributes = parseBooleanEnvFlag(
8432
+ env["QWEN_TELEMETRY_INCLUDE_SENSITIVE_SPAN_ATTRIBUTES"]
8433
+ ) ?? settings.includeSensitiveSpanAttributes ?? false;
8434
+ const sensitiveSpanAttributeMaxLength = parseSensitiveSpanAttributeMaxLengthEnvValue(
8435
+ "QWEN_TELEMETRY_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH",
8436
+ env["QWEN_TELEMETRY_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH"]
8437
+ ) ?? parseSensitiveSpanAttributeMaxLengthSetting(
8438
+ "telemetry.sensitiveSpanAttributeMaxLength",
8439
+ settings.sensitiveSpanAttributeMaxLength
8440
+ ) ?? DEFAULT_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH;
8441
+ const outfile = argv.telemetryOutfile ?? env["QWEN_TELEMETRY_OUTFILE"] ?? settings.outfile;
8442
+ const otlpTracesEndpoint = env["QWEN_TELEMETRY_OTLP_TRACES_ENDPOINT"] ?? env["OTEL_EXPORTER_OTLP_TRACES_ENDPOINT"] ?? settings.otlpTracesEndpoint;
8443
+ const otlpLogsEndpoint = env["QWEN_TELEMETRY_OTLP_LOGS_ENDPOINT"] ?? env["OTEL_EXPORTER_OTLP_LOGS_ENDPOINT"] ?? settings.otlpLogsEndpoint;
8444
+ const otlpMetricsEndpoint = env["QWEN_TELEMETRY_OTLP_METRICS_ENDPOINT"] ?? env["OTEL_EXPORTER_OTLP_METRICS_ENDPOINT"] ?? settings.otlpMetricsEndpoint;
8445
+ const resourceAttributeWarnings = [];
8446
+ const envResourceAttrs = stripReservedResourceAttributes(
8447
+ parseOtelResourceAttributes(
8448
+ env["OTEL_RESOURCE_ATTRIBUTES"],
8449
+ resourceAttributeWarnings
8450
+ ),
8451
+ "OTEL_RESOURCE_ATTRIBUTES",
8452
+ resourceAttributeWarnings
8453
+ );
8454
+ const settingsResourceAttrs = stripReservedResourceAttributes(
8455
+ coerceStringResourceAttributes(
8456
+ settings.resourceAttributes,
8457
+ resourceAttributeWarnings
8458
+ ),
8459
+ "settings.telemetry.resourceAttributes",
8460
+ resourceAttributeWarnings
8461
+ );
8462
+ const mergedResourceAttrs = {
8463
+ ...envResourceAttrs,
8464
+ ...settingsResourceAttrs
8465
+ };
8466
+ const otelServiceName = env["OTEL_SERVICE_NAME"]?.trim();
8467
+ if (otelServiceName) {
8468
+ mergedResourceAttrs["service.name"] = otelServiceName;
8469
+ }
8470
+ const resourceAttributes = Object.keys(mergedResourceAttrs).length ? mergedResourceAttrs : void 0;
8471
+ const metricsIncludeSessionId = parseBooleanEnvFlag(env["QWEN_TELEMETRY_METRICS_INCLUDE_SESSION_ID"]) ?? settings.metrics?.includeSessionId ?? false;
8472
+ return {
8473
+ enabled,
8474
+ target,
8475
+ otlpEndpoint,
8476
+ otlpProtocol,
8477
+ otlpTracesEndpoint,
8478
+ otlpLogsEndpoint,
8479
+ otlpMetricsEndpoint,
8480
+ logPrompts,
8481
+ userId,
8482
+ includeSensitiveSpanAttributes,
8483
+ sensitiveSpanAttributeMaxLength,
8484
+ outfile,
8485
+ resourceAttributes,
8486
+ metrics: { includeSessionId: metricsIncludeSessionId },
8487
+ resourceAttributeWarnings: resourceAttributeWarnings.length ? resourceAttributeWarnings : void 0
8488
+ };
8489
+ }
8490
+ __name(resolveTelemetrySettings, "resolveTelemetrySettings");
8491
+
7595
8492
  // packages/core/src/skills/skill-curator.ts
7596
8493
  init_esbuild_shims();
7597
8494
  var import_proper_lockfile = __toESM(require_proper_lockfile(), 1);
@@ -7602,7 +8499,7 @@ import * as path2 from "node:path";
7602
8499
  // packages/core/src/utils/yaml-parser.ts
7603
8500
  init_esbuild_shims();
7604
8501
  var yaml = __toESM(require_dist(), 1);
7605
- var debugLogger = createDebugLogger("YAML_PARSER");
8502
+ var debugLogger2 = createDebugLogger("YAML_PARSER");
7606
8503
  function parse2(yamlString) {
7607
8504
  try {
7608
8505
  const result = yaml.parse(yamlString, {
@@ -7619,11 +8516,11 @@ function parse2(yamlString) {
7619
8516
  if (result && typeof result === "object" && !Array.isArray(result)) {
7620
8517
  return stripNullValues(result);
7621
8518
  }
7622
- debugLogger.warn(
8519
+ debugLogger2.warn(
7623
8520
  `Full YAML parser returned non-object (${typeof result}), falling back to simple parser`
7624
8521
  );
7625
8522
  } catch (error) {
7626
- debugLogger.warn(
8523
+ debugLogger2.warn(
7627
8524
  `Full YAML parser failed, falling back to simple parser: ${error}`
7628
8525
  );
7629
8526
  }
@@ -7936,7 +8833,7 @@ var SkillErrorCode = {
7936
8833
  var AUTO_SKILL_CURATOR_INTERVAL_MS = 7 * 24 * 60 * 60 * 1e3;
7937
8834
  var AUTO_SKILL_STALE_AFTER_MS = 30 * 24 * 60 * 60 * 1e3;
7938
8835
  var AUTO_SKILL_ARCHIVE_AFTER_MS = 90 * 24 * 60 * 60 * 1e3;
7939
- var debugLogger2 = createDebugLogger("SKILL_CURATOR");
8836
+ var debugLogger3 = createDebugLogger("SKILL_CURATOR");
7940
8837
  var AUTO_SKILL_PREFIX = "auto-skill-";
7941
8838
  var CURATOR_STATE_VERSION = 1;
7942
8839
  var CURATOR_STATE_FILE = "skill-curator.json";
@@ -7978,7 +8875,7 @@ var LOCK_OPTIONS = {
7978
8875
  },
7979
8876
  stale: 1e4,
7980
8877
  onCompromised: /* @__PURE__ */ __name((err) => {
7981
- debugLogger2.warn("skill curator lock compromised:", err);
8878
+ debugLogger3.warn("skill curator lock compromised:", err);
7982
8879
  }, "onCompromised")
7983
8880
  };
7984
8881
  function getCuratorPaths(projectRoot) {
@@ -8655,10 +9552,10 @@ __name(restoreArchivedAutoSkill, "restoreArchivedAutoSkill");
8655
9552
 
8656
9553
  // packages/core/src/hooks/registerSkillHooks.ts
8657
9554
  init_esbuild_shims();
8658
- var debugLogger3 = createDebugLogger("SKILL_HOOKS");
9555
+ var debugLogger4 = createDebugLogger("SKILL_HOOKS");
8659
9556
  function registerSkillHooks(sessionHooksManager, sessionId, skill) {
8660
9557
  if (!skill.hooks) {
8661
- debugLogger3.debug(`Skill '${skill.name}' has no hooks to register`);
9558
+ debugLogger4.debug(`Skill '${skill.name}' has no hooks to register`);
8662
9559
  return 0;
8663
9560
  }
8664
9561
  const hooksSettings = skill.hooks;
@@ -8670,7 +9567,7 @@ function registerSkillHooks(sessionHooksManager, sessionId, skill) {
8670
9567
  const matcherPattern = matcher.matcher || "";
8671
9568
  for (const hook of matcher.hooks) {
8672
9569
  if (hook.type === "function" /* Function */) {
8673
- debugLogger3.debug(
9570
+ debugLogger4.debug(
8674
9571
  "Skipping function hook from skill (not supported in frontmatter)"
8675
9572
  );
8676
9573
  continue;
@@ -8683,7 +9580,7 @@ function registerSkillHooks(sessionHooksManager, sessionId, skill) {
8683
9580
  (entry) => entry.matcher === matcherPattern && entry.skillRoot === skill.skillRoot && hookConfigKey(entry.config) === hookConfigKey(hookConfig)
8684
9581
  );
8685
9582
  if (alreadyRegistered) {
8686
- debugLogger3.debug(
9583
+ debugLogger4.debug(
8687
9584
  `Hook for ${eventName} with matcher '${matcherPattern}' from skill '${skill.name}' already registered; skipping duplicate`
8688
9585
  );
8689
9586
  continue;
@@ -8696,14 +9593,14 @@ function registerSkillHooks(sessionHooksManager, sessionId, skill) {
8696
9593
  { skillRoot: skill.skillRoot }
8697
9594
  );
8698
9595
  registeredCount++;
8699
- debugLogger3.debug(
9596
+ debugLogger4.debug(
8700
9597
  `Registered hook for ${eventName} with matcher '${matcherPattern}' from skill '${skill.name}'`
8701
9598
  );
8702
9599
  }
8703
9600
  }
8704
9601
  }
8705
9602
  if (registeredCount > 0) {
8706
- debugLogger3.info(
9603
+ debugLogger4.info(
8707
9604
  `Registered ${registeredCount} hooks from skill '${skill.name}'`
8708
9605
  );
8709
9606
  }
@@ -8729,6 +9626,30 @@ function prepareHookConfig(hook, skillRoot) {
8729
9626
  __name(prepareHookConfig, "prepareHookConfig");
8730
9627
 
8731
9628
  export {
9629
+ parseBooleanEnvFlag,
9630
+ resolveTelemetrySettings,
9631
+ initializeDaemonMetrics,
9632
+ registerDaemonGaugeCallbacks,
9633
+ recordDaemonHttpRequest,
9634
+ recordDaemonSessionLifecycle,
9635
+ recordDaemonChannelLifecycle,
9636
+ recordDaemonPromptQueueWait,
9637
+ recordDaemonPromptDuration,
9638
+ recordDaemonBridgeError,
9639
+ recordDaemonCancel,
9640
+ recordDaemonPipeMessage,
9641
+ startEventLoopLagMonitor,
9642
+ registerDaemonEventLoopLagGauge,
9643
+ registerAcpEventLoopLagGauge,
9644
+ areSensitiveSpanAttributesEnabled,
9645
+ addAgentInputMessageAttributes,
9646
+ addAgentOutputMessageAttributes,
9647
+ AgentOutputMessageCapture,
9648
+ addUserPromptAttributes,
9649
+ addToolArgumentsAttributes,
9650
+ addToolCallResultAttributes,
9651
+ DEFAULT_TELEMETRY_TARGET,
9652
+ DEFAULT_OTLP_ENDPOINT,
8732
9653
  require_dist,
8733
9654
  SKILL_FILE_NAME,
8734
9655
  getProjectSkillsRoot,
@@ -8756,11 +9677,16 @@ export {
8756
9677
  };
8757
9678
  /**
8758
9679
  * @license
8759
- * Copyright 2025 Qwen
9680
+ * Copyright 2026 Qwen Team
8760
9681
  * SPDX-License-Identifier: Apache-2.0
8761
9682
  */
8762
9683
  /**
8763
9684
  * @license
8764
- * Copyright 2026 Qwen Team
9685
+ * Copyright 2025 Google LLC
9686
+ * SPDX-License-Identifier: Apache-2.0
9687
+ */
9688
+ /**
9689
+ * @license
9690
+ * Copyright 2025 Qwen
8765
9691
  * SPDX-License-Identifier: Apache-2.0
8766
9692
  */