@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
@@ -1,945 +0,0 @@
1
- // Force strict mode and setup for ESM
2
- "use strict";
3
- import {
4
- stringifyGenAiJson
5
- } from "./chunk-FJWICLG7.js";
6
- import {
7
- DEFAULT_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH,
8
- SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH_LIMIT,
9
- SERVICE_NAME,
10
- getMeter,
11
- isTelemetrySdkInitialized,
12
- isValidSensitiveSpanAttributeMaxLength
13
- } from "./chunk-6US7BF3G.js";
14
- import {
15
- FatalConfigError,
16
- createDebugLogger
17
- } from "./chunk-2NNTE2ED.js";
18
- import {
19
- ValueType,
20
- diag,
21
- init_esm
22
- } from "./chunk-TBWQLLFO.js";
23
- import {
24
- init_esbuild_shims
25
- } from "./chunk-5O2XNYP6.js";
26
- import {
27
- __name
28
- } from "./chunk-J2S4EL5Y.js";
29
-
30
- // packages/core/src/telemetry/config.ts
31
- init_esbuild_shims();
32
-
33
- // packages/core/src/telemetry/index.ts
34
- init_esbuild_shims();
35
-
36
- // packages/core/src/telemetry/daemon-metrics.ts
37
- init_esbuild_shims();
38
- init_esm();
39
- var DAEMON_HTTP_REQUEST_COUNT = `${SERVICE_NAME}.daemon.http.request.count`;
40
- var DAEMON_HTTP_REQUEST_DURATION = `${SERVICE_NAME}.daemon.http.request.duration`;
41
- var DAEMON_SESSION_ACTIVE = `${SERVICE_NAME}.daemon.session.active`;
42
- var DAEMON_SESSION_LIFECYCLE = `${SERVICE_NAME}.daemon.session.lifecycle`;
43
- var DAEMON_CHANNEL_LIFECYCLE = `${SERVICE_NAME}.daemon.channel.lifecycle`;
44
- var DAEMON_PROMPT_QUEUE_WAIT = `${SERVICE_NAME}.daemon.prompt.queue_wait`;
45
- var DAEMON_PROMPT_DURATION = `${SERVICE_NAME}.daemon.prompt.duration`;
46
- var DAEMON_BRIDGE_ERROR_COUNT = `${SERVICE_NAME}.daemon.bridge.error.count`;
47
- var DAEMON_CANCEL_COUNT = `${SERVICE_NAME}.daemon.cancel.count`;
48
- var DAEMON_PIPE_MESSAGE_BYTES = `${SERVICE_NAME}.daemon.pipe.message_bytes`;
49
- var DAEMON_SSE_ACTIVE = `${SERVICE_NAME}.daemon.sse.active`;
50
- var DAEMON_PROCESS_HEAP_USED = `${SERVICE_NAME}.daemon.process.heap_used`;
51
- var KNOWN_ERROR_TYPES = /* @__PURE__ */ new Set([
52
- "SessionNotFoundError",
53
- "WorkspaceMismatchError",
54
- "InvalidClientIdError",
55
- "SessionLimitExceededError",
56
- "RestoreInProgressError",
57
- "InvalidSessionScopeError",
58
- "TrustGateError",
59
- "WorkspaceInitConflictError",
60
- "WorkspaceInitPathEscapeError",
61
- "WorkspaceInitSymlinkError",
62
- "WorkspaceInitRaceError",
63
- "McpServerNotFoundError",
64
- "McpServerRestartFailedError",
65
- "PromptDeadlineExceededError",
66
- "InvalidSessionMetadataError",
67
- "SubscriberLimitExceededError",
68
- "BridgeChannelClosedError",
69
- "BridgeTimeoutError",
70
- "SessionRestoreTimeoutError",
71
- "BridgeChannelQuarantinedError",
72
- "PermissionForbiddenError"
73
- ]);
74
- var initialized = false;
75
- var httpRequestCounter;
76
- var httpRequestDurationHistogram;
77
- var sessionLifecycleCounter;
78
- var channelLifecycleCounter;
79
- var promptQueueWaitHistogram;
80
- var promptDurationHistogram;
81
- var bridgeErrorCounter;
82
- var cancelCounter;
83
- var pipeMessageBytesHistogram;
84
- function normalizeErrorType(err) {
85
- const name = err instanceof Error ? err.name : typeof err;
86
- return KNOWN_ERROR_TYPES.has(name) ? name : "unknown";
87
- }
88
- __name(normalizeErrorType, "normalizeErrorType");
89
- function initializeDaemonMetrics() {
90
- if (initialized) return;
91
- const meter = getMeter();
92
- if (!meter) return;
93
- httpRequestCounter = meter.createCounter(DAEMON_HTTP_REQUEST_COUNT, {
94
- description: "Daemon HTTP request count by route and status class.",
95
- valueType: ValueType.INT
96
- });
97
- httpRequestDurationHistogram = meter.createHistogram(
98
- DAEMON_HTTP_REQUEST_DURATION,
99
- {
100
- description: "Daemon HTTP request duration in milliseconds.",
101
- unit: "ms",
102
- valueType: ValueType.DOUBLE,
103
- advice: {
104
- explicitBucketBoundaries: [
105
- 1,
106
- 2,
107
- 5,
108
- 10,
109
- 25,
110
- 50,
111
- 100,
112
- 250,
113
- 500,
114
- 1e3,
115
- 2500,
116
- 5e3,
117
- 1e4,
118
- 3e4
119
- ]
120
- }
121
- }
122
- );
123
- sessionLifecycleCounter = meter.createCounter(DAEMON_SESSION_LIFECYCLE, {
124
- description: "Daemon session lifecycle events (spawn, close, die).",
125
- valueType: ValueType.INT
126
- });
127
- channelLifecycleCounter = meter.createCounter(DAEMON_CHANNEL_LIFECYCLE, {
128
- description: "Daemon ACP channel lifecycle events (spawn, exit).",
129
- valueType: ValueType.INT
130
- });
131
- promptQueueWaitHistogram = meter.createHistogram(DAEMON_PROMPT_QUEUE_WAIT, {
132
- description: "Time a prompt waited in the per-session FIFO queue.",
133
- unit: "ms",
134
- valueType: ValueType.DOUBLE,
135
- advice: {
136
- explicitBucketBoundaries: [
137
- 1,
138
- 5,
139
- 10,
140
- 50,
141
- 100,
142
- 500,
143
- 1e3,
144
- 5e3,
145
- 1e4,
146
- 3e4,
147
- 6e4
148
- ]
149
- }
150
- });
151
- promptDurationHistogram = meter.createHistogram(DAEMON_PROMPT_DURATION, {
152
- description: "End-to-end prompt duration from dispatch to completion.",
153
- unit: "ms",
154
- valueType: ValueType.DOUBLE,
155
- advice: {
156
- explicitBucketBoundaries: [
157
- 100,
158
- 500,
159
- 1e3,
160
- 2500,
161
- 5e3,
162
- 1e4,
163
- 3e4,
164
- 6e4,
165
- 12e4,
166
- 3e5,
167
- 6e5
168
- ]
169
- }
170
- });
171
- bridgeErrorCounter = meter.createCounter(DAEMON_BRIDGE_ERROR_COUNT, {
172
- description: "Daemon bridge error count by normalized error type.",
173
- valueType: ValueType.INT
174
- });
175
- cancelCounter = meter.createCounter(DAEMON_CANCEL_COUNT, {
176
- description: "Daemon cancel request count.",
177
- valueType: ValueType.INT
178
- });
179
- pipeMessageBytesHistogram = meter.createHistogram(DAEMON_PIPE_MESSAGE_BYTES, {
180
- description: "Daemon ACP child pipe message payload size in bytes.",
181
- unit: "By",
182
- valueType: ValueType.INT,
183
- advice: {
184
- explicitBucketBoundaries: [
185
- 256,
186
- 1024,
187
- 4096,
188
- 16384,
189
- 65536,
190
- 262144,
191
- 1048576,
192
- 4194304,
193
- 16777216
194
- ]
195
- }
196
- });
197
- initialized = true;
198
- }
199
- __name(initializeDaemonMetrics, "initializeDaemonMetrics");
200
- var gaugesRegistered = false;
201
- function registerDaemonGaugeCallbacks(callbacks) {
202
- if (gaugesRegistered) return;
203
- const meter = getMeter();
204
- if (!meter) return;
205
- meter.createObservableGauge(DAEMON_SESSION_ACTIVE, {
206
- description: "Current number of active daemon sessions.",
207
- valueType: ValueType.INT
208
- }).addCallback((result) => {
209
- try {
210
- result.observe(callbacks.sessionCount());
211
- } catch {
212
- }
213
- });
214
- meter.createObservableGauge(DAEMON_SSE_ACTIVE, {
215
- description: "Current number of active SSE connections.",
216
- valueType: ValueType.INT
217
- }).addCallback((result) => {
218
- try {
219
- result.observe(callbacks.sseCount());
220
- } catch {
221
- }
222
- });
223
- meter.createObservableGauge(DAEMON_PROCESS_HEAP_USED, {
224
- description: "Daemon process heap memory usage in bytes.",
225
- unit: "bytes",
226
- valueType: ValueType.INT
227
- }).addCallback((result) => {
228
- try {
229
- result.observe(callbacks.heapUsed());
230
- } catch {
231
- }
232
- });
233
- gaugesRegistered = true;
234
- }
235
- __name(registerDaemonGaugeCallbacks, "registerDaemonGaugeCallbacks");
236
- function recordDaemonHttpRequest(durationMs, route, statusCode, deferredRuntimePath) {
237
- if (!initialized) return;
238
- const statusClass = `${Math.floor(statusCode / 100)}xx`;
239
- httpRequestCounter?.add(1, { route, status_class: statusClass });
240
- httpRequestDurationHistogram?.record(durationMs, {
241
- route,
242
- runtime_path: deferredRuntimePath ?? "none"
243
- });
244
- }
245
- __name(recordDaemonHttpRequest, "recordDaemonHttpRequest");
246
- function recordDaemonSessionLifecycle(action) {
247
- if (!initialized) return;
248
- sessionLifecycleCounter?.add(1, { action });
249
- }
250
- __name(recordDaemonSessionLifecycle, "recordDaemonSessionLifecycle");
251
- function recordDaemonChannelLifecycle(action, expected) {
252
- if (!initialized) return;
253
- channelLifecycleCounter?.add(1, {
254
- action,
255
- ...expected != null ? { expected } : {}
256
- });
257
- }
258
- __name(recordDaemonChannelLifecycle, "recordDaemonChannelLifecycle");
259
- function recordDaemonPromptQueueWait(durationMs) {
260
- if (!initialized) return;
261
- promptQueueWaitHistogram?.record(durationMs);
262
- }
263
- __name(recordDaemonPromptQueueWait, "recordDaemonPromptQueueWait");
264
- function recordDaemonPromptDuration(durationMs) {
265
- if (!initialized) return;
266
- promptDurationHistogram?.record(durationMs);
267
- }
268
- __name(recordDaemonPromptDuration, "recordDaemonPromptDuration");
269
- function recordDaemonBridgeError(err) {
270
- if (!initialized) return;
271
- bridgeErrorCounter?.add(1, { error_type: normalizeErrorType(err) });
272
- }
273
- __name(recordDaemonBridgeError, "recordDaemonBridgeError");
274
- function recordDaemonCancel() {
275
- if (!initialized) return;
276
- cancelCounter?.add(1);
277
- }
278
- __name(recordDaemonCancel, "recordDaemonCancel");
279
- function recordDaemonPipeMessage(direction, bytes) {
280
- if (!initialized) return;
281
- pipeMessageBytesHistogram?.record(bytes, { direction });
282
- }
283
- __name(recordDaemonPipeMessage, "recordDaemonPipeMessage");
284
-
285
- // packages/core/src/telemetry/event-loop-lag.ts
286
- init_esbuild_shims();
287
- import { monitorEventLoopDelay } from "node:perf_hooks";
288
- var DEFAULT_RESOLUTION_MS = 20;
289
- var DEFAULT_STALL_THRESHOLD_MS = 1e3;
290
- var DEFAULT_EVENT_LOOP_SUSPEND_THRESHOLD_MS = 5 * 60 * 1e3;
291
- var DEFAULT_SUSPEND_CPU_RATIO = 0.01;
292
- var NS_PER_MS = 1e6;
293
- function startEventLoopLagMonitor(options = {}) {
294
- const resolutionMs = positiveFiniteOrDefault(
295
- options.resolutionMs,
296
- DEFAULT_RESOLUTION_MS
297
- );
298
- const stallThresholdMs = positiveFiniteOrDefault(
299
- options.stallThresholdMs,
300
- DEFAULT_STALL_THRESHOLD_MS
301
- );
302
- const suspendThresholdMs = positiveFiniteOrDefault(
303
- options.suspendThresholdMs,
304
- DEFAULT_EVENT_LOOP_SUSPEND_THRESHOLD_MS
305
- );
306
- const suspendCpuRatio = fractionOrDefault(
307
- options.suspendCpuRatio,
308
- DEFAULT_SUSPEND_CPU_RATIO
309
- );
310
- const histogram = monitorEventLoopDelay({ resolution: resolutionMs });
311
- histogram.enable();
312
- let disposed = false;
313
- let lastReportedMaxMs = 0;
314
- let lastObservedMaxMs = 0;
315
- let lastCheckTimeMs = Date.now();
316
- let lastCpuUsage = safeCpuUsage();
317
- let pendingSuspendGapMs = 0;
318
- const readMaxMs = /* @__PURE__ */ __name(() => nsToMs(histogram.max), "readMaxMs");
319
- const checkHistogram = /* @__PURE__ */ __name(() => {
320
- if (disposed) return;
321
- const nowMs = Date.now();
322
- const cpuUsage = safeCpuUsage();
323
- const elapsedMs = Math.max(0, nowMs - lastCheckTimeMs);
324
- const maxMs = readMaxMs();
325
- const newMaxMs = maxMs > lastObservedMaxMs ? maxMs : 0;
326
- const cpuRatio = calculateCpuRatio(lastCpuUsage, cpuUsage, elapsedMs);
327
- lastCheckTimeMs = nowMs;
328
- if (cpuUsage) lastCpuUsage = cpuUsage;
329
- lastObservedMaxMs = maxMs;
330
- const isLowCpuGap = elapsedMs >= suspendThresholdMs && cpuRatio !== void 0 && cpuRatio <= suspendCpuRatio;
331
- const suspendGapMs = isLowCpuGap ? elapsedMs : pendingSuspendGapMs;
332
- pendingSuspendGapMs = isLowCpuGap ? elapsedMs : 0;
333
- if (newMaxMs >= suspendThresholdMs && suspendGapMs >= suspendThresholdMs && newMaxMs <= suspendGapMs * 1.5) {
334
- histogram.reset();
335
- lastObservedMaxMs = 0;
336
- lastReportedMaxMs = 0;
337
- pendingSuspendGapMs = 0;
338
- return;
339
- }
340
- if (options.onNewMaxStall && maxMs >= stallThresholdMs && maxMs > lastReportedMaxMs) {
341
- lastReportedMaxMs = maxMs;
342
- try {
343
- options.onNewMaxStall(maxMs);
344
- } catch {
345
- }
346
- }
347
- }, "checkHistogram");
348
- const interval = setInterval(checkHistogram, resolutionMs);
349
- interval.unref();
350
- return {
351
- snapshot() {
352
- return {
353
- meanMs: nsToMs(histogram.mean),
354
- p50Ms: nsToMs(histogram.percentile(50)),
355
- p99Ms: nsToMs(histogram.percentile(99)),
356
- maxMs: readMaxMs()
357
- };
358
- },
359
- dispose() {
360
- if (disposed) return;
361
- disposed = true;
362
- clearInterval(interval);
363
- histogram.disable();
364
- }
365
- };
366
- }
367
- __name(startEventLoopLagMonitor, "startEventLoopLagMonitor");
368
- function safeCpuUsage() {
369
- try {
370
- return process.cpuUsage();
371
- } catch {
372
- return void 0;
373
- }
374
- }
375
- __name(safeCpuUsage, "safeCpuUsage");
376
- function calculateCpuRatio(previous, current, elapsedMs) {
377
- if (!previous || !current || elapsedMs <= 0) return void 0;
378
- const cpuMicroseconds = current.user - previous.user + (current.system - previous.system);
379
- return Math.max(0, cpuMicroseconds / (elapsedMs * 1e3));
380
- }
381
- __name(calculateCpuRatio, "calculateCpuRatio");
382
- function nsToMs(value) {
383
- return Number.isFinite(value) ? value / NS_PER_MS : 0;
384
- }
385
- __name(nsToMs, "nsToMs");
386
- function positiveFiniteOrDefault(value, fallback) {
387
- return value !== void 0 && Number.isFinite(value) && value > 0 ? value : fallback;
388
- }
389
- __name(positiveFiniteOrDefault, "positiveFiniteOrDefault");
390
- function fractionOrDefault(value, fallback) {
391
- return value !== void 0 && Number.isFinite(value) && value >= 0 && value <= 1 ? value : fallback;
392
- }
393
- __name(fractionOrDefault, "fractionOrDefault");
394
-
395
- // packages/core/src/telemetry/event-loop-lag-metrics.ts
396
- init_esbuild_shims();
397
- init_esm();
398
- var DAEMON_EVENT_LOOP_LAG = `${SERVICE_NAME}.daemon.event_loop.lag`;
399
- var ACP_EVENT_LOOP_LAG = `${SERVICE_NAME}.acp.event_loop.lag`;
400
- var daemonGaugeRegistered = false;
401
- var acpGaugeRegistered = false;
402
- function registerDaemonEventLoopLagGauge(read) {
403
- if (daemonGaugeRegistered) return;
404
- daemonGaugeRegistered = registerEventLoopLagGauge(
405
- DAEMON_EVENT_LOOP_LAG,
406
- read
407
- );
408
- }
409
- __name(registerDaemonEventLoopLagGauge, "registerDaemonEventLoopLagGauge");
410
- function registerAcpEventLoopLagGauge(read) {
411
- if (acpGaugeRegistered) return;
412
- acpGaugeRegistered = registerEventLoopLagGauge(ACP_EVENT_LOOP_LAG, read);
413
- }
414
- __name(registerAcpEventLoopLagGauge, "registerAcpEventLoopLagGauge");
415
- function registerEventLoopLagGauge(name, read) {
416
- const meter = getMeter();
417
- if (!meter) return false;
418
- meter.createObservableGauge(name, {
419
- description: "Event loop lag in milliseconds.",
420
- unit: "ms",
421
- valueType: ValueType.DOUBLE
422
- }).addCallback((result) => {
423
- try {
424
- const snapshot = read();
425
- result.observe(snapshot.meanMs, { stat: "mean" });
426
- result.observe(snapshot.p50Ms, { stat: "p50" });
427
- result.observe(snapshot.p99Ms, { stat: "p99" });
428
- result.observe(snapshot.maxMs, { stat: "max" });
429
- } catch {
430
- }
431
- });
432
- return true;
433
- }
434
- __name(registerEventLoopLagGauge, "registerEventLoopLagGauge");
435
-
436
- // packages/core/src/telemetry/detailed-span-attributes.ts
437
- init_esbuild_shims();
438
- var SHORT_TRUNCATION_SUFFIX = "...[TRUNCATED]";
439
- var debugLogger = createDebugLogger("GEN_AI_CONTENT");
440
- function areSensitiveSpanAttributesEnabled(config) {
441
- return isTelemetrySdkInitialized() && config.getTelemetryIncludeSensitiveSpanAttributes();
442
- }
443
- __name(areSensitiveSpanAttributesEnabled, "areSensitiveSpanAttributesEnabled");
444
- function truncateContent(content, maxSize = DEFAULT_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH, originalLength = content.length) {
445
- if (!Number.isSafeInteger(maxSize) || maxSize < 1) {
446
- throw new TypeError(
447
- `maxSize must be a positive safe integer, got ${String(maxSize)}`
448
- );
449
- }
450
- if (!Number.isSafeInteger(originalLength) || originalLength < 0) {
451
- throw new TypeError(
452
- `originalLength must be a non-negative safe integer, got ${String(
453
- originalLength
454
- )}`
455
- );
456
- }
457
- if (originalLength < content.length) {
458
- throw new TypeError(
459
- `originalLength must be greater than or equal to content length, got ${originalLength} for content length ${content.length}`
460
- );
461
- }
462
- if (originalLength <= maxSize && content.length <= maxSize) {
463
- return { content, truncated: false };
464
- }
465
- if (originalLength > content.length && content.length <= maxSize) {
466
- return { content, truncated: true };
467
- }
468
- const suffix = `
469
-
470
- [TRUNCATED - Content exceeds configured limit of ${maxSize} characters]`;
471
- if (suffix.length >= maxSize) {
472
- if (SHORT_TRUNCATION_SUFFIX.length >= maxSize) {
473
- return {
474
- content: SHORT_TRUNCATION_SUFFIX.slice(0, maxSize),
475
- truncated: true
476
- };
477
- }
478
- return {
479
- content: content.slice(0, maxSize - SHORT_TRUNCATION_SUFFIX.length) + SHORT_TRUNCATION_SUFFIX,
480
- truncated: true
481
- };
482
- }
483
- return {
484
- content: content.slice(0, maxSize - suffix.length) + suffix,
485
- truncated: true
486
- };
487
- }
488
- __name(truncateContent, "truncateContent");
489
- function getMaxContentSize(config) {
490
- return config.getTelemetrySensitiveSpanAttributeMaxLength();
491
- }
492
- __name(getMaxContentSize, "getMaxContentSize");
493
- function truncatePrefixedContent(prefix, content, maxSize) {
494
- const prefixedContent = `${prefix}${content}`;
495
- const result = truncateContent(prefixedContent, maxSize);
496
- return {
497
- ...result,
498
- originalLength: content.length
499
- };
500
- }
501
- __name(truncatePrefixedContent, "truncatePrefixedContent");
502
- function addAgentInputMessageAttributes(config, span, promptText) {
503
- if (!areSensitiveSpanAttributesEnabled(config) || promptText.trim().length === 0) {
504
- return;
505
- }
506
- writeJsonAttribute(config, span, "gen_ai.input.messages", [
507
- {
508
- role: "user",
509
- parts: [{ type: "text", content: promptText }]
510
- }
511
- ]);
512
- }
513
- __name(addAgentInputMessageAttributes, "addAgentInputMessageAttributes");
514
- function addAgentOutputMessageAttributes(config, span, responseText, finishReason) {
515
- if (!areSensitiveSpanAttributesEnabled(config) || responseText.trim().length === 0) {
516
- return;
517
- }
518
- const reason = normalizeAgentFinishReason(finishReason);
519
- if (!reason) return;
520
- writeJsonAttribute(config, span, "gen_ai.output.messages", [
521
- {
522
- role: "assistant",
523
- parts: [{ type: "text", content: responseText }],
524
- finish_reason: reason
525
- }
526
- ]);
527
- }
528
- __name(addAgentOutputMessageAttributes, "addAgentOutputMessageAttributes");
529
- function normalizeAgentFinishReason(finishReason) {
530
- const reason = finishReason?.trim().toLowerCase();
531
- if (!reason || reason === "finish_reason_unspecified") return void 0;
532
- if (reason === "stop") return "stop";
533
- if (reason === "max_tokens") return "length";
534
- if (reason === "tool_calls" || reason === "function_call" || reason === "tool_call") {
535
- return "tool_call";
536
- }
537
- 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") {
538
- return "content_filter";
539
- }
540
- return reason;
541
- }
542
- __name(normalizeAgentFinishReason, "normalizeAgentFinishReason");
543
- var AgentOutputMessageCapture = class {
544
- constructor(config) {
545
- this.config = config;
546
- this.enabled = areSensitiveSpanAttributesEnabled(config);
547
- this.maxLength = this.enabled ? config.getTelemetrySensitiveSpanAttributeMaxLength() : 0;
548
- }
549
- static {
550
- __name(this, "AgentOutputMessageCapture");
551
- }
552
- enabled;
553
- maxLength;
554
- responseText = "";
555
- finishReason;
556
- overflow = false;
557
- committed;
558
- beginResponse() {
559
- if (!this.enabled) return;
560
- this.clearResponse();
561
- this.committed = void 0;
562
- }
563
- appendText(text) {
564
- if (!this.enabled || !text || this.overflow) return;
565
- const remaining = this.maxLength - this.responseText.length;
566
- if (text.length > remaining) {
567
- this.responseText = "";
568
- this.overflow = true;
569
- this.committed = void 0;
570
- return;
571
- }
572
- this.responseText += text;
573
- }
574
- observeFinishReason(finishReason) {
575
- if (!this.enabled) return;
576
- const normalized = normalizeAgentFinishReason(finishReason);
577
- if (normalized) this.finishReason = normalized;
578
- }
579
- restartAttempt(preserveText) {
580
- if (!this.enabled) return;
581
- if (!preserveText) {
582
- this.clearResponse();
583
- } else {
584
- this.finishReason = void 0;
585
- }
586
- this.committed = void 0;
587
- }
588
- commitResponse(hasToolCalls) {
589
- if (!this.enabled || hasToolCalls || this.overflow || this.responseText.trim().length === 0 || !this.finishReason) {
590
- this.committed = void 0;
591
- return;
592
- }
593
- this.committed = {
594
- responseText: this.responseText,
595
- finishReason: this.finishReason
596
- };
597
- }
598
- writeToSpan(span) {
599
- if (!span || !this.committed) return;
600
- addAgentOutputMessageAttributes(
601
- this.config,
602
- span,
603
- this.committed.responseText,
604
- this.committed.finishReason
605
- );
606
- }
607
- clearResponse() {
608
- this.responseText = "";
609
- this.finishReason = void 0;
610
- this.overflow = false;
611
- }
612
- };
613
- function addUserPromptAttributes(config, span, promptText) {
614
- if (!areSensitiveSpanAttributesEnabled(config) || !promptText) return;
615
- const { content, truncated, originalLength } = truncatePrefixedContent(
616
- `[USER PROMPT]
617
- `,
618
- promptText,
619
- getMaxContentSize(config)
620
- );
621
- span.setAttributes({
622
- new_context: content,
623
- ...truncated && {
624
- new_context_truncated: true,
625
- new_context_original_length: originalLength
626
- }
627
- });
628
- }
629
- __name(addUserPromptAttributes, "addUserPromptAttributes");
630
- function addToolArgumentsAttributes(config, span, argumentsValue) {
631
- if (!areSensitiveSpanAttributesEnabled(config)) return;
632
- writeJsonAttribute(
633
- config,
634
- span,
635
- "gen_ai.tool.call.arguments",
636
- argumentsValue,
637
- true
638
- );
639
- }
640
- __name(addToolArgumentsAttributes, "addToolArgumentsAttributes");
641
- function addToolCallResultAttributes(config, span, result) {
642
- if (!areSensitiveSpanAttributesEnabled(config)) return;
643
- writeJsonAttribute(config, span, "gen_ai.tool.call.result", result, true);
644
- }
645
- __name(addToolCallResultAttributes, "addToolCallResultAttributes");
646
- function writeJsonAttribute(config, span, key, value, requireObject = false) {
647
- let serialized;
648
- try {
649
- serialized = stringifyGenAiJson(
650
- value,
651
- getMaxContentSize(config),
652
- requireObject
653
- );
654
- } catch {
655
- debugLogger.debug(`Failed to serialize ${key} span attribute`);
656
- return;
657
- }
658
- if (serialized === void 0) return;
659
- try {
660
- span.setAttribute(key, serialized);
661
- } catch {
662
- debugLogger.debug(`Failed to set ${key} span attribute`);
663
- }
664
- }
665
- __name(writeJsonAttribute, "writeJsonAttribute");
666
-
667
- // packages/core/src/telemetry/index.ts
668
- var DEFAULT_TELEMETRY_TARGET = "local" /* LOCAL */;
669
- var DEFAULT_OTLP_ENDPOINT = "http://localhost:4317";
670
-
671
- // packages/core/src/telemetry/resource-attributes.ts
672
- init_esbuild_shims();
673
- init_esm();
674
- var RESERVED_RESOURCE_ATTRIBUTE_KEYS = /* @__PURE__ */ new Set([
675
- "service.version",
676
- "session.id"
677
- ]);
678
- function warn(msg, warnings) {
679
- diag.warn(msg);
680
- warnings?.push(msg);
681
- }
682
- __name(warn, "warn");
683
- function parseOtelResourceAttributes(raw, warnings) {
684
- if (!raw) return {};
685
- const out = {};
686
- for (const pair of raw.split(",")) {
687
- const trimmed = pair.trim();
688
- if (!trimmed) continue;
689
- const idx = trimmed.indexOf("=");
690
- if (idx < 0) {
691
- warn(
692
- `Skipping malformed OTEL_RESOURCE_ATTRIBUTES entry: "${trimmed}" (hint: percent-encode literal commas as %2C)`,
693
- warnings
694
- );
695
- continue;
696
- }
697
- const rawKey = trimmed.slice(0, idx).trim();
698
- if (!rawKey) continue;
699
- const valueRaw = trimmed.slice(idx + 1).trim();
700
- let key;
701
- try {
702
- key = decodeURIComponent(rawKey);
703
- } catch {
704
- warn(
705
- `Invalid percent-encoding in OTEL_RESOURCE_ATTRIBUTES key "${rawKey}", using raw key`,
706
- warnings
707
- );
708
- key = rawKey;
709
- }
710
- let value;
711
- try {
712
- value = decodeURIComponent(valueRaw);
713
- } catch {
714
- warn(
715
- `Invalid percent-encoding in OTEL_RESOURCE_ATTRIBUTES for key "${key}", using raw value`,
716
- warnings
717
- );
718
- value = valueRaw;
719
- }
720
- out[key] = value;
721
- }
722
- return out;
723
- }
724
- __name(parseOtelResourceAttributes, "parseOtelResourceAttributes");
725
- function stripReservedResourceAttributes(attrs, source, warnings) {
726
- for (const k of RESERVED_RESOURCE_ATTRIBUTE_KEYS) {
727
- if (k in attrs) {
728
- warn(`${source} cannot override reserved key "${k}"; ignoring`, warnings);
729
- delete attrs[k];
730
- }
731
- }
732
- return attrs;
733
- }
734
- __name(stripReservedResourceAttributes, "stripReservedResourceAttributes");
735
- function coerceStringResourceAttributes(raw, warnings) {
736
- if (raw === null || raw === void 0) return {};
737
- if (typeof raw !== "object" || Array.isArray(raw)) {
738
- warn(
739
- "settings.telemetry.resourceAttributes must be an object; ignoring",
740
- warnings
741
- );
742
- return {};
743
- }
744
- const out = {};
745
- for (const [k, v] of Object.entries(raw)) {
746
- const key = k.trim();
747
- if (!key) {
748
- warn(
749
- "settings.telemetry.resourceAttributes has an empty or whitespace-only key; ignoring",
750
- warnings
751
- );
752
- continue;
753
- }
754
- if (typeof v === "string") {
755
- out[key] = v;
756
- } else {
757
- warn(
758
- `settings.telemetry.resourceAttributes value for "${key}" must be a string (got ${typeof v}); ignoring`,
759
- warnings
760
- );
761
- }
762
- }
763
- return out;
764
- }
765
- __name(coerceStringResourceAttributes, "coerceStringResourceAttributes");
766
-
767
- // packages/core/src/telemetry/config.ts
768
- function parseBooleanEnvFlag(value) {
769
- if (value === void 0) return void 0;
770
- return value === "true" || value === "1";
771
- }
772
- __name(parseBooleanEnvFlag, "parseBooleanEnvFlag");
773
- function parseTelemetryTargetValue(value) {
774
- if (value === void 0) return void 0;
775
- if (value === "local" /* LOCAL */ || value === "local") {
776
- return "local" /* LOCAL */;
777
- }
778
- if (value === "gcp" /* GCP */ || value === "gcp") {
779
- return "gcp" /* GCP */;
780
- }
781
- return void 0;
782
- }
783
- __name(parseTelemetryTargetValue, "parseTelemetryTargetValue");
784
- function parseSensitiveSpanAttributeMaxLengthEnvValue(envName, value) {
785
- if (value === void 0) return void 0;
786
- const trimmed = value.trim();
787
- const parsed = Number(trimmed);
788
- if (!/^\d+$/.test(trimmed) || !isValidSensitiveSpanAttributeMaxLength(parsed)) {
789
- throw new FatalConfigError(
790
- `Invalid ${envName}: must be a positive integer no greater than ${SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH_LIMIT}, got '${value}'`
791
- );
792
- }
793
- return parsed;
794
- }
795
- __name(parseSensitiveSpanAttributeMaxLengthEnvValue, "parseSensitiveSpanAttributeMaxLengthEnvValue");
796
- function parseSensitiveSpanAttributeMaxLengthSetting(settingName, value) {
797
- if (value === void 0) return void 0;
798
- if (typeof value !== "number" || !isValidSensitiveSpanAttributeMaxLength(value)) {
799
- throw new FatalConfigError(
800
- `Invalid ${settingName}: must be a positive integer no greater than ${SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH_LIMIT}, got ${String(
801
- value
802
- )}`
803
- );
804
- }
805
- return value;
806
- }
807
- __name(parseSensitiveSpanAttributeMaxLengthSetting, "parseSensitiveSpanAttributeMaxLengthSetting");
808
- function parseTelemetryUserId(source, value) {
809
- if (value === void 0) return void 0;
810
- if (typeof value !== "string") {
811
- throw new FatalConfigError(
812
- `Invalid ${source}: must be a string, got ${typeof value}`
813
- );
814
- }
815
- return value.trim() || void 0;
816
- }
817
- __name(parseTelemetryUserId, "parseTelemetryUserId");
818
- async function resolveTelemetrySettings(options) {
819
- const argv = options.argv ?? {};
820
- const env = options.env ?? {};
821
- const settings = options.settings ?? {};
822
- const enabled = argv.telemetry ?? parseBooleanEnvFlag(env["QWEN_TELEMETRY_ENABLED"]) ?? settings.enabled;
823
- const rawTarget = argv.telemetryTarget ?? env["QWEN_TELEMETRY_TARGET"] ?? settings.target;
824
- const target = parseTelemetryTargetValue(rawTarget);
825
- if (rawTarget !== void 0 && target === void 0) {
826
- throw new FatalConfigError(
827
- `Invalid telemetry target: ${String(
828
- rawTarget
829
- )}. Valid values are: local, gcp`
830
- );
831
- }
832
- const otlpEndpoint = argv.telemetryOtlpEndpoint ?? env["QWEN_TELEMETRY_OTLP_ENDPOINT"] ?? env["OTEL_EXPORTER_OTLP_ENDPOINT"] ?? settings.otlpEndpoint;
833
- const rawProtocol = argv.telemetryOtlpProtocol ?? env["QWEN_TELEMETRY_OTLP_PROTOCOL"] ?? settings.otlpProtocol;
834
- const otlpProtocol = ["grpc", "http"].find(
835
- (p) => p === rawProtocol
836
- );
837
- if (rawProtocol !== void 0 && otlpProtocol === void 0) {
838
- throw new FatalConfigError(
839
- `Invalid telemetry OTLP protocol: ${String(
840
- rawProtocol
841
- )}. Valid values are: grpc, http`
842
- );
843
- }
844
- const logPrompts = argv.telemetryLogPrompts ?? parseBooleanEnvFlag(env["QWEN_TELEMETRY_LOG_PROMPTS"]) ?? settings.logPrompts;
845
- const userId = parseTelemetryUserId(
846
- "QWEN_TELEMETRY_USER_ID",
847
- env["QWEN_TELEMETRY_USER_ID"]
848
- ) ?? parseTelemetryUserId("telemetry.userId", settings.userId);
849
- const includeSensitiveSpanAttributes = parseBooleanEnvFlag(
850
- env["QWEN_TELEMETRY_INCLUDE_SENSITIVE_SPAN_ATTRIBUTES"]
851
- ) ?? settings.includeSensitiveSpanAttributes ?? false;
852
- const sensitiveSpanAttributeMaxLength = parseSensitiveSpanAttributeMaxLengthEnvValue(
853
- "QWEN_TELEMETRY_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH",
854
- env["QWEN_TELEMETRY_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH"]
855
- ) ?? parseSensitiveSpanAttributeMaxLengthSetting(
856
- "telemetry.sensitiveSpanAttributeMaxLength",
857
- settings.sensitiveSpanAttributeMaxLength
858
- ) ?? DEFAULT_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH;
859
- const outfile = argv.telemetryOutfile ?? env["QWEN_TELEMETRY_OUTFILE"] ?? settings.outfile;
860
- const otlpTracesEndpoint = env["QWEN_TELEMETRY_OTLP_TRACES_ENDPOINT"] ?? env["OTEL_EXPORTER_OTLP_TRACES_ENDPOINT"] ?? settings.otlpTracesEndpoint;
861
- const otlpLogsEndpoint = env["QWEN_TELEMETRY_OTLP_LOGS_ENDPOINT"] ?? env["OTEL_EXPORTER_OTLP_LOGS_ENDPOINT"] ?? settings.otlpLogsEndpoint;
862
- const otlpMetricsEndpoint = env["QWEN_TELEMETRY_OTLP_METRICS_ENDPOINT"] ?? env["OTEL_EXPORTER_OTLP_METRICS_ENDPOINT"] ?? settings.otlpMetricsEndpoint;
863
- const resourceAttributeWarnings = [];
864
- const envResourceAttrs = stripReservedResourceAttributes(
865
- parseOtelResourceAttributes(
866
- env["OTEL_RESOURCE_ATTRIBUTES"],
867
- resourceAttributeWarnings
868
- ),
869
- "OTEL_RESOURCE_ATTRIBUTES",
870
- resourceAttributeWarnings
871
- );
872
- const settingsResourceAttrs = stripReservedResourceAttributes(
873
- coerceStringResourceAttributes(
874
- settings.resourceAttributes,
875
- resourceAttributeWarnings
876
- ),
877
- "settings.telemetry.resourceAttributes",
878
- resourceAttributeWarnings
879
- );
880
- const mergedResourceAttrs = {
881
- ...envResourceAttrs,
882
- ...settingsResourceAttrs
883
- };
884
- const otelServiceName = env["OTEL_SERVICE_NAME"]?.trim();
885
- if (otelServiceName) {
886
- mergedResourceAttrs["service.name"] = otelServiceName;
887
- }
888
- const resourceAttributes = Object.keys(mergedResourceAttrs).length ? mergedResourceAttrs : void 0;
889
- const metricsIncludeSessionId = parseBooleanEnvFlag(env["QWEN_TELEMETRY_METRICS_INCLUDE_SESSION_ID"]) ?? settings.metrics?.includeSessionId ?? false;
890
- return {
891
- enabled,
892
- target,
893
- otlpEndpoint,
894
- otlpProtocol,
895
- otlpTracesEndpoint,
896
- otlpLogsEndpoint,
897
- otlpMetricsEndpoint,
898
- logPrompts,
899
- userId,
900
- includeSensitiveSpanAttributes,
901
- sensitiveSpanAttributeMaxLength,
902
- outfile,
903
- resourceAttributes,
904
- metrics: { includeSessionId: metricsIncludeSessionId },
905
- resourceAttributeWarnings: resourceAttributeWarnings.length ? resourceAttributeWarnings : void 0
906
- };
907
- }
908
- __name(resolveTelemetrySettings, "resolveTelemetrySettings");
909
-
910
- export {
911
- parseBooleanEnvFlag,
912
- resolveTelemetrySettings,
913
- initializeDaemonMetrics,
914
- registerDaemonGaugeCallbacks,
915
- recordDaemonHttpRequest,
916
- recordDaemonSessionLifecycle,
917
- recordDaemonChannelLifecycle,
918
- recordDaemonPromptQueueWait,
919
- recordDaemonPromptDuration,
920
- recordDaemonBridgeError,
921
- recordDaemonCancel,
922
- recordDaemonPipeMessage,
923
- startEventLoopLagMonitor,
924
- registerDaemonEventLoopLagGauge,
925
- registerAcpEventLoopLagGauge,
926
- areSensitiveSpanAttributesEnabled,
927
- addAgentInputMessageAttributes,
928
- addAgentOutputMessageAttributes,
929
- AgentOutputMessageCapture,
930
- addUserPromptAttributes,
931
- addToolArgumentsAttributes,
932
- addToolCallResultAttributes,
933
- DEFAULT_TELEMETRY_TARGET,
934
- DEFAULT_OTLP_ENDPOINT
935
- };
936
- /**
937
- * @license
938
- * Copyright 2026 Qwen Team
939
- * SPDX-License-Identifier: Apache-2.0
940
- */
941
- /**
942
- * @license
943
- * Copyright 2025 Google LLC
944
- * SPDX-License-Identifier: Apache-2.0
945
- */