shield360 1.0.0

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 (520) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +310 -0
  3. package/dist/__tests__/manual-trace.test.d.ts +1 -0
  4. package/dist/__tests__/manual-trace.test.js +118 -0
  5. package/dist/__tests__/manual-trace.test.js.map +1 -0
  6. package/dist/__tests__/register.test.d.ts +0 -0
  7. package/dist/__tests__/register.test.js +90 -0
  8. package/dist/__tests__/register.test.js.map +1 -0
  9. package/dist/config.d.ts +28 -0
  10. package/dist/config.js +22 -0
  11. package/dist/config.js.map +1 -0
  12. package/dist/constant.d.ts +6 -0
  13. package/dist/constant.js +14 -0
  14. package/dist/constant.js.map +1 -0
  15. package/dist/evals/__tests__/offline.test.d.ts +1 -0
  16. package/dist/evals/__tests__/offline.test.js +427 -0
  17. package/dist/evals/__tests__/offline.test.js.map +1 -0
  18. package/dist/evals/index.d.ts +2 -0
  19. package/dist/evals/index.js +15 -0
  20. package/dist/evals/index.js.map +1 -0
  21. package/dist/evals/offline.d.ts +6 -0
  22. package/dist/evals/offline.js +350 -0
  23. package/dist/evals/offline.js.map +1 -0
  24. package/dist/evals/types.d.ts +74 -0
  25. package/dist/evals/types.js +23 -0
  26. package/dist/evals/types.js.map +1 -0
  27. package/dist/features/__tests__/rule-engine.test.d.ts +1 -0
  28. package/dist/features/__tests__/rule-engine.test.js +146 -0
  29. package/dist/features/__tests__/rule-engine.test.js.map +1 -0
  30. package/dist/features/base.d.ts +8 -0
  31. package/dist/features/base.js +15 -0
  32. package/dist/features/base.js.map +1 -0
  33. package/dist/features/prompt-hub.d.ts +4 -0
  34. package/dist/features/prompt-hub.js +66 -0
  35. package/dist/features/prompt-hub.js.map +1 -0
  36. package/dist/features/rule-engine.d.ts +6 -0
  37. package/dist/features/rule-engine.js +60 -0
  38. package/dist/features/rule-engine.js.map +1 -0
  39. package/dist/features/vault.d.ts +4 -0
  40. package/dist/features/vault.js +63 -0
  41. package/dist/features/vault.js.map +1 -0
  42. package/dist/guard/__tests__/findings.test.d.ts +1 -0
  43. package/dist/guard/__tests__/findings.test.js +79 -0
  44. package/dist/guard/__tests__/findings.test.js.map +1 -0
  45. package/dist/guard/__tests__/integration.test.d.ts +1 -0
  46. package/dist/guard/__tests__/integration.test.js +215 -0
  47. package/dist/guard/__tests__/integration.test.js.map +1 -0
  48. package/dist/guard/__tests__/pii.test.d.ts +1 -0
  49. package/dist/guard/__tests__/pii.test.js +131 -0
  50. package/dist/guard/__tests__/pii.test.js.map +1 -0
  51. package/dist/guard/__tests__/pipeline.test.d.ts +1 -0
  52. package/dist/guard/__tests__/pipeline.test.js +162 -0
  53. package/dist/guard/__tests__/pipeline.test.js.map +1 -0
  54. package/dist/guard/__tests__/prompt-injection.test.d.ts +1 -0
  55. package/dist/guard/__tests__/prompt-injection.test.js +92 -0
  56. package/dist/guard/__tests__/prompt-injection.test.js.map +1 -0
  57. package/dist/guard/__tests__/report.test.d.ts +1 -0
  58. package/dist/guard/__tests__/report.test.js +50 -0
  59. package/dist/guard/__tests__/report.test.js.map +1 -0
  60. package/dist/guard/base.d.ts +79 -0
  61. package/dist/guard/base.js +136 -0
  62. package/dist/guard/base.js.map +1 -0
  63. package/dist/guard/custom.d.ts +19 -0
  64. package/dist/guard/custom.js +46 -0
  65. package/dist/guard/custom.js.map +1 -0
  66. package/dist/guard/findings.d.ts +31 -0
  67. package/dist/guard/findings.js +156 -0
  68. package/dist/guard/findings.js.map +1 -0
  69. package/dist/guard/index.d.ts +24 -0
  70. package/dist/guard/index.js +42 -0
  71. package/dist/guard/index.js.map +1 -0
  72. package/dist/guard/integration.d.ts +44 -0
  73. package/dist/guard/integration.js +363 -0
  74. package/dist/guard/integration.js.map +1 -0
  75. package/dist/guard/moderation.d.ts +18 -0
  76. package/dist/guard/moderation.js +61 -0
  77. package/dist/guard/moderation.js.map +1 -0
  78. package/dist/guard/pii.d.ts +17 -0
  79. package/dist/guard/pii.js +114 -0
  80. package/dist/guard/pii.js.map +1 -0
  81. package/dist/guard/pipeline.d.ts +26 -0
  82. package/dist/guard/pipeline.js +139 -0
  83. package/dist/guard/pipeline.js.map +1 -0
  84. package/dist/guard/prompt-injection.d.ts +21 -0
  85. package/dist/guard/prompt-injection.js +70 -0
  86. package/dist/guard/prompt-injection.js.map +1 -0
  87. package/dist/guard/report.d.ts +34 -0
  88. package/dist/guard/report.js +182 -0
  89. package/dist/guard/report.js.map +1 -0
  90. package/dist/guard/schema.d.ts +20 -0
  91. package/dist/guard/schema.js +99 -0
  92. package/dist/guard/schema.js.map +1 -0
  93. package/dist/guard/sensitive-topic.d.ts +23 -0
  94. package/dist/guard/sensitive-topic.js +89 -0
  95. package/dist/guard/sensitive-topic.js.map +1 -0
  96. package/dist/guard/topic-restriction.d.ts +22 -0
  97. package/dist/guard/topic-restriction.js +54 -0
  98. package/dist/guard/topic-restriction.js.map +1 -0
  99. package/dist/helpers.d.ts +246 -0
  100. package/dist/helpers.js +903 -0
  101. package/dist/helpers.js.map +1 -0
  102. package/dist/index.d.ts +71 -0
  103. package/dist/index.js +234 -0
  104. package/dist/index.js.map +1 -0
  105. package/dist/instrumentation/__tests__/ai21-rag-trace-comparison.test.d.ts +13 -0
  106. package/dist/instrumentation/__tests__/ai21-rag-trace-comparison.test.js +176 -0
  107. package/dist/instrumentation/__tests__/ai21-rag-trace-comparison.test.js.map +1 -0
  108. package/dist/instrumentation/__tests__/ai21-trace-comparison.test.d.ts +10 -0
  109. package/dist/instrumentation/__tests__/ai21-trace-comparison.test.js +203 -0
  110. package/dist/instrumentation/__tests__/ai21-trace-comparison.test.js.map +1 -0
  111. package/dist/instrumentation/__tests__/anthropic-wrapper.test.d.ts +1 -0
  112. package/dist/instrumentation/__tests__/anthropic-wrapper.test.js +284 -0
  113. package/dist/instrumentation/__tests__/anthropic-wrapper.test.js.map +1 -0
  114. package/dist/instrumentation/__tests__/assemblyai-wrapper.test.d.ts +1 -0
  115. package/dist/instrumentation/__tests__/assemblyai-wrapper.test.js +284 -0
  116. package/dist/instrumentation/__tests__/assemblyai-wrapper.test.js.map +1 -0
  117. package/dist/instrumentation/__tests__/astra-trace-comparison.test.d.ts +7 -0
  118. package/dist/instrumentation/__tests__/astra-trace-comparison.test.js +160 -0
  119. package/dist/instrumentation/__tests__/astra-trace-comparison.test.js.map +1 -0
  120. package/dist/instrumentation/__tests__/base-wrapper.test.d.ts +1 -0
  121. package/dist/instrumentation/__tests__/base-wrapper.test.js +171 -0
  122. package/dist/instrumentation/__tests__/base-wrapper.test.js.map +1 -0
  123. package/dist/instrumentation/__tests__/bedrock-trace-comparison.test.d.ts +1 -0
  124. package/dist/instrumentation/__tests__/bedrock-trace-comparison.test.js +422 -0
  125. package/dist/instrumentation/__tests__/bedrock-trace-comparison.test.js.map +1 -0
  126. package/dist/instrumentation/__tests__/browser-use-wrapper.test.d.ts +1 -0
  127. package/dist/instrumentation/__tests__/browser-use-wrapper.test.js +284 -0
  128. package/dist/instrumentation/__tests__/browser-use-wrapper.test.js.map +1 -0
  129. package/dist/instrumentation/__tests__/cache-pricing.test.d.ts +15 -0
  130. package/dist/instrumentation/__tests__/cache-pricing.test.js +155 -0
  131. package/dist/instrumentation/__tests__/cache-pricing.test.js.map +1 -0
  132. package/dist/instrumentation/__tests__/chroma-trace-comparison.test.d.ts +18 -0
  133. package/dist/instrumentation/__tests__/chroma-trace-comparison.test.js +209 -0
  134. package/dist/instrumentation/__tests__/chroma-trace-comparison.test.js.map +1 -0
  135. package/dist/instrumentation/__tests__/cohere-wrapper.test.d.ts +1 -0
  136. package/dist/instrumentation/__tests__/cohere-wrapper.test.js +256 -0
  137. package/dist/instrumentation/__tests__/cohere-wrapper.test.js.map +1 -0
  138. package/dist/instrumentation/__tests__/elevenlabs-wrapper.test.d.ts +1 -0
  139. package/dist/instrumentation/__tests__/elevenlabs-wrapper.test.js +282 -0
  140. package/dist/instrumentation/__tests__/elevenlabs-wrapper.test.js.map +1 -0
  141. package/dist/instrumentation/__tests__/firecrawl-wrapper.test.d.ts +1 -0
  142. package/dist/instrumentation/__tests__/firecrawl-wrapper.test.js +238 -0
  143. package/dist/instrumentation/__tests__/firecrawl-wrapper.test.js.map +1 -0
  144. package/dist/instrumentation/__tests__/google-ai-trace-comparison.test.d.ts +4 -0
  145. package/dist/instrumentation/__tests__/google-ai-trace-comparison.test.js +229 -0
  146. package/dist/instrumentation/__tests__/google-ai-trace-comparison.test.js.map +1 -0
  147. package/dist/instrumentation/__tests__/gpu-collector.test.d.ts +1 -0
  148. package/dist/instrumentation/__tests__/gpu-collector.test.js +247 -0
  149. package/dist/instrumentation/__tests__/gpu-collector.test.js.map +1 -0
  150. package/dist/instrumentation/__tests__/gradient-trace-comparison.test.d.ts +11 -0
  151. package/dist/instrumentation/__tests__/gradient-trace-comparison.test.js +391 -0
  152. package/dist/instrumentation/__tests__/gradient-trace-comparison.test.js.map +1 -0
  153. package/dist/instrumentation/__tests__/groq-trace-comparison.test.d.ts +7 -0
  154. package/dist/instrumentation/__tests__/groq-trace-comparison.test.js +687 -0
  155. package/dist/instrumentation/__tests__/groq-trace-comparison.test.js.map +1 -0
  156. package/dist/instrumentation/__tests__/helpers-genai.test.d.ts +14 -0
  157. package/dist/instrumentation/__tests__/helpers-genai.test.js +347 -0
  158. package/dist/instrumentation/__tests__/helpers-genai.test.js.map +1 -0
  159. package/dist/instrumentation/__tests__/huggingface-trace-comparison.test.d.ts +7 -0
  160. package/dist/instrumentation/__tests__/huggingface-trace-comparison.test.js +529 -0
  161. package/dist/instrumentation/__tests__/huggingface-trace-comparison.test.js.map +1 -0
  162. package/dist/instrumentation/__tests__/langchain-role-map.test.d.ts +1 -0
  163. package/dist/instrumentation/__tests__/langchain-role-map.test.js +19 -0
  164. package/dist/instrumentation/__tests__/langchain-role-map.test.js.map +1 -0
  165. package/dist/instrumentation/__tests__/langchain-wrapper.test.d.ts +1 -0
  166. package/dist/instrumentation/__tests__/langchain-wrapper.test.js +282 -0
  167. package/dist/instrumentation/__tests__/langchain-wrapper.test.js.map +1 -0
  168. package/dist/instrumentation/__tests__/letta-wrapper.test.d.ts +1 -0
  169. package/dist/instrumentation/__tests__/letta-wrapper.test.js +285 -0
  170. package/dist/instrumentation/__tests__/letta-wrapper.test.js.map +1 -0
  171. package/dist/instrumentation/__tests__/mem0-trace-comparison.test.d.ts +13 -0
  172. package/dist/instrumentation/__tests__/mem0-trace-comparison.test.js +208 -0
  173. package/dist/instrumentation/__tests__/mem0-trace-comparison.test.js.map +1 -0
  174. package/dist/instrumentation/__tests__/milvus-trace-comparison.test.d.ts +17 -0
  175. package/dist/instrumentation/__tests__/milvus-trace-comparison.test.js +206 -0
  176. package/dist/instrumentation/__tests__/milvus-trace-comparison.test.js.map +1 -0
  177. package/dist/instrumentation/__tests__/mistral-trace-comparison.test.d.ts +1 -0
  178. package/dist/instrumentation/__tests__/mistral-trace-comparison.test.js +345 -0
  179. package/dist/instrumentation/__tests__/mistral-trace-comparison.test.js.map +1 -0
  180. package/dist/instrumentation/__tests__/openai-wrapper.test.d.ts +1 -0
  181. package/dist/instrumentation/__tests__/openai-wrapper.test.js +179 -0
  182. package/dist/instrumentation/__tests__/openai-wrapper.test.js.map +1 -0
  183. package/dist/instrumentation/__tests__/pg-trace-comparison.test.d.ts +21 -0
  184. package/dist/instrumentation/__tests__/pg-trace-comparison.test.js +455 -0
  185. package/dist/instrumentation/__tests__/pg-trace-comparison.test.js.map +1 -0
  186. package/dist/instrumentation/__tests__/qdrant-trace-comparison.test.d.ts +17 -0
  187. package/dist/instrumentation/__tests__/qdrant-trace-comparison.test.js +182 -0
  188. package/dist/instrumentation/__tests__/qdrant-trace-comparison.test.js.map +1 -0
  189. package/dist/instrumentation/__tests__/replicate-trace-comparison.test.d.ts +8 -0
  190. package/dist/instrumentation/__tests__/replicate-trace-comparison.test.js +346 -0
  191. package/dist/instrumentation/__tests__/replicate-trace-comparison.test.js.map +1 -0
  192. package/dist/instrumentation/__tests__/together-trace-comparison.test.d.ts +4 -0
  193. package/dist/instrumentation/__tests__/together-trace-comparison.test.js +289 -0
  194. package/dist/instrumentation/__tests__/together-trace-comparison.test.js.map +1 -0
  195. package/dist/instrumentation/__tests__/trace-comparison-utils.d.ts +67 -0
  196. package/dist/instrumentation/__tests__/trace-comparison-utils.js +255 -0
  197. package/dist/instrumentation/__tests__/trace-comparison-utils.js.map +1 -0
  198. package/dist/instrumentation/__tests__/transformers-trace-comparison.test.d.ts +11 -0
  199. package/dist/instrumentation/__tests__/transformers-trace-comparison.test.js +214 -0
  200. package/dist/instrumentation/__tests__/transformers-trace-comparison.test.js.map +1 -0
  201. package/dist/instrumentation/__tests__/vercel-ai-trace-comparison.test.d.ts +8 -0
  202. package/dist/instrumentation/__tests__/vercel-ai-trace-comparison.test.js +446 -0
  203. package/dist/instrumentation/__tests__/vercel-ai-trace-comparison.test.js.map +1 -0
  204. package/dist/instrumentation/__tests__/vertexai-trace-comparison.test.d.ts +6 -0
  205. package/dist/instrumentation/__tests__/vertexai-trace-comparison.test.js +409 -0
  206. package/dist/instrumentation/__tests__/vertexai-trace-comparison.test.js.map +1 -0
  207. package/dist/instrumentation/__tests__/vllm-trace-comparison.test.d.ts +1 -0
  208. package/dist/instrumentation/__tests__/vllm-trace-comparison.test.js +519 -0
  209. package/dist/instrumentation/__tests__/vllm-trace-comparison.test.js.map +1 -0
  210. package/dist/instrumentation/ai21/index.d.ts +11 -0
  211. package/dist/instrumentation/ai21/index.js +67 -0
  212. package/dist/instrumentation/ai21/index.js.map +1 -0
  213. package/dist/instrumentation/ai21/wrapper.d.ts +54 -0
  214. package/dist/instrumentation/ai21/wrapper.js +511 -0
  215. package/dist/instrumentation/ai21/wrapper.js.map +1 -0
  216. package/dist/instrumentation/anthropic/index.d.ts +11 -0
  217. package/dist/instrumentation/anthropic/index.js +45 -0
  218. package/dist/instrumentation/anthropic/index.js.map +1 -0
  219. package/dist/instrumentation/anthropic/wrapper.d.ts +34 -0
  220. package/dist/instrumentation/anthropic/wrapper.js +426 -0
  221. package/dist/instrumentation/anthropic/wrapper.js.map +1 -0
  222. package/dist/instrumentation/assemblyai/index.d.ts +12 -0
  223. package/dist/instrumentation/assemblyai/index.js +91 -0
  224. package/dist/instrumentation/assemblyai/index.js.map +1 -0
  225. package/dist/instrumentation/assemblyai/wrapper.d.ts +35 -0
  226. package/dist/instrumentation/assemblyai/wrapper.js +238 -0
  227. package/dist/instrumentation/assemblyai/wrapper.js.map +1 -0
  228. package/dist/instrumentation/astra/index.d.ts +11 -0
  229. package/dist/instrumentation/astra/index.js +87 -0
  230. package/dist/instrumentation/astra/index.js.map +1 -0
  231. package/dist/instrumentation/astra/wrapper.d.ts +39 -0
  232. package/dist/instrumentation/astra/wrapper.js +349 -0
  233. package/dist/instrumentation/astra/wrapper.js.map +1 -0
  234. package/dist/instrumentation/azure-ai-inference/index.d.ts +11 -0
  235. package/dist/instrumentation/azure-ai-inference/index.js +76 -0
  236. package/dist/instrumentation/azure-ai-inference/index.js.map +1 -0
  237. package/dist/instrumentation/azure-ai-inference/wrapper.d.ts +55 -0
  238. package/dist/instrumentation/azure-ai-inference/wrapper.js +580 -0
  239. package/dist/instrumentation/azure-ai-inference/wrapper.js.map +1 -0
  240. package/dist/instrumentation/base-wrapper.d.ts +16 -0
  241. package/dist/instrumentation/base-wrapper.js +139 -0
  242. package/dist/instrumentation/base-wrapper.js.map +1 -0
  243. package/dist/instrumentation/bedrock/index.d.ts +11 -0
  244. package/dist/instrumentation/bedrock/index.js +52 -0
  245. package/dist/instrumentation/bedrock/index.js.map +1 -0
  246. package/dist/instrumentation/bedrock/wrapper.d.ts +41 -0
  247. package/dist/instrumentation/bedrock/wrapper.js +494 -0
  248. package/dist/instrumentation/bedrock/wrapper.js.map +1 -0
  249. package/dist/instrumentation/browser-use/index.d.ts +11 -0
  250. package/dist/instrumentation/browser-use/index.js +98 -0
  251. package/dist/instrumentation/browser-use/index.js.map +1 -0
  252. package/dist/instrumentation/browser-use/wrapper.d.ts +12 -0
  253. package/dist/instrumentation/browser-use/wrapper.js +706 -0
  254. package/dist/instrumentation/browser-use/wrapper.js.map +1 -0
  255. package/dist/instrumentation/chroma/index.d.ts +11 -0
  256. package/dist/instrumentation/chroma/index.js +70 -0
  257. package/dist/instrumentation/chroma/index.js.map +1 -0
  258. package/dist/instrumentation/chroma/wrapper.d.ts +10 -0
  259. package/dist/instrumentation/chroma/wrapper.js +127 -0
  260. package/dist/instrumentation/chroma/wrapper.js.map +1 -0
  261. package/dist/instrumentation/claude-agent-sdk/index.d.ts +23 -0
  262. package/dist/instrumentation/claude-agent-sdk/index.js +83 -0
  263. package/dist/instrumentation/claude-agent-sdk/index.js.map +1 -0
  264. package/dist/instrumentation/claude-agent-sdk/wrapper.d.ts +13 -0
  265. package/dist/instrumentation/claude-agent-sdk/wrapper.js +1123 -0
  266. package/dist/instrumentation/claude-agent-sdk/wrapper.js.map +1 -0
  267. package/dist/instrumentation/cohere/index.d.ts +11 -0
  268. package/dist/instrumentation/cohere/index.js +53 -0
  269. package/dist/instrumentation/cohere/index.js.map +1 -0
  270. package/dist/instrumentation/cohere/wrapper.d.ts +50 -0
  271. package/dist/instrumentation/cohere/wrapper.js +452 -0
  272. package/dist/instrumentation/cohere/wrapper.js.map +1 -0
  273. package/dist/instrumentation/cursor-sdk/index.d.ts +21 -0
  274. package/dist/instrumentation/cursor-sdk/index.js +58 -0
  275. package/dist/instrumentation/cursor-sdk/index.js.map +1 -0
  276. package/dist/instrumentation/cursor-sdk/wrapper.d.ts +17 -0
  277. package/dist/instrumentation/cursor-sdk/wrapper.js +789 -0
  278. package/dist/instrumentation/cursor-sdk/wrapper.js.map +1 -0
  279. package/dist/instrumentation/elevenlabs/index.d.ts +12 -0
  280. package/dist/instrumentation/elevenlabs/index.js +92 -0
  281. package/dist/instrumentation/elevenlabs/index.js.map +1 -0
  282. package/dist/instrumentation/elevenlabs/wrapper.d.ts +34 -0
  283. package/dist/instrumentation/elevenlabs/wrapper.js +280 -0
  284. package/dist/instrumentation/elevenlabs/wrapper.js.map +1 -0
  285. package/dist/instrumentation/firecrawl/index.d.ts +13 -0
  286. package/dist/instrumentation/firecrawl/index.js +115 -0
  287. package/dist/instrumentation/firecrawl/index.js.map +1 -0
  288. package/dist/instrumentation/firecrawl/wrapper.d.ts +22 -0
  289. package/dist/instrumentation/firecrawl/wrapper.js +378 -0
  290. package/dist/instrumentation/firecrawl/wrapper.js.map +1 -0
  291. package/dist/instrumentation/google-adk/index.d.ts +57 -0
  292. package/dist/instrumentation/google-adk/index.js +371 -0
  293. package/dist/instrumentation/google-adk/index.js.map +1 -0
  294. package/dist/instrumentation/google-adk/utils.d.ts +45 -0
  295. package/dist/instrumentation/google-adk/utils.js +663 -0
  296. package/dist/instrumentation/google-adk/utils.js.map +1 -0
  297. package/dist/instrumentation/google-adk/wrapper.d.ts +11 -0
  298. package/dist/instrumentation/google-adk/wrapper.js +391 -0
  299. package/dist/instrumentation/google-adk/wrapper.js.map +1 -0
  300. package/dist/instrumentation/google-ai/index.d.ts +11 -0
  301. package/dist/instrumentation/google-ai/index.js +48 -0
  302. package/dist/instrumentation/google-ai/index.js.map +1 -0
  303. package/dist/instrumentation/google-ai/wrapper.d.ts +52 -0
  304. package/dist/instrumentation/google-ai/wrapper.js +466 -0
  305. package/dist/instrumentation/google-ai/wrapper.js.map +1 -0
  306. package/dist/instrumentation/gpu/index.d.ts +38 -0
  307. package/dist/instrumentation/gpu/index.js +233 -0
  308. package/dist/instrumentation/gpu/index.js.map +1 -0
  309. package/dist/instrumentation/gradient/index.d.ts +12 -0
  310. package/dist/instrumentation/gradient/index.js +74 -0
  311. package/dist/instrumentation/gradient/index.js.map +1 -0
  312. package/dist/instrumentation/gradient/utils.d.ts +14 -0
  313. package/dist/instrumentation/gradient/utils.js +119 -0
  314. package/dist/instrumentation/gradient/utils.js.map +1 -0
  315. package/dist/instrumentation/gradient/wrapper.d.ts +76 -0
  316. package/dist/instrumentation/gradient/wrapper.js +584 -0
  317. package/dist/instrumentation/gradient/wrapper.js.map +1 -0
  318. package/dist/instrumentation/groq/index.d.ts +11 -0
  319. package/dist/instrumentation/groq/index.js +43 -0
  320. package/dist/instrumentation/groq/index.js.map +1 -0
  321. package/dist/instrumentation/groq/wrapper.d.ts +35 -0
  322. package/dist/instrumentation/groq/wrapper.js +442 -0
  323. package/dist/instrumentation/groq/wrapper.js.map +1 -0
  324. package/dist/instrumentation/huggingface/index.d.ts +13 -0
  325. package/dist/instrumentation/huggingface/index.js +110 -0
  326. package/dist/instrumentation/huggingface/index.js.map +1 -0
  327. package/dist/instrumentation/huggingface/wrapper.d.ts +54 -0
  328. package/dist/instrumentation/huggingface/wrapper.js +514 -0
  329. package/dist/instrumentation/huggingface/wrapper.js.map +1 -0
  330. package/dist/instrumentation/index.d.ts +7 -0
  331. package/dist/instrumentation/index.js +176 -0
  332. package/dist/instrumentation/index.js.map +1 -0
  333. package/dist/instrumentation/langchain/index.d.ts +16 -0
  334. package/dist/instrumentation/langchain/index.js +91 -0
  335. package/dist/instrumentation/langchain/index.js.map +1 -0
  336. package/dist/instrumentation/langchain/wrapper.d.ts +41 -0
  337. package/dist/instrumentation/langchain/wrapper.js +1235 -0
  338. package/dist/instrumentation/langchain/wrapper.js.map +1 -0
  339. package/dist/instrumentation/langgraph/index.d.ts +12 -0
  340. package/dist/instrumentation/langgraph/index.js +99 -0
  341. package/dist/instrumentation/langgraph/index.js.map +1 -0
  342. package/dist/instrumentation/langgraph/wrapper.d.ts +20 -0
  343. package/dist/instrumentation/langgraph/wrapper.js +620 -0
  344. package/dist/instrumentation/langgraph/wrapper.js.map +1 -0
  345. package/dist/instrumentation/letta/index.d.ts +10 -0
  346. package/dist/instrumentation/letta/index.js +122 -0
  347. package/dist/instrumentation/letta/index.js.map +1 -0
  348. package/dist/instrumentation/letta/utils.d.ts +24 -0
  349. package/dist/instrumentation/letta/utils.js +343 -0
  350. package/dist/instrumentation/letta/utils.js.map +1 -0
  351. package/dist/instrumentation/letta/wrapper.d.ts +37 -0
  352. package/dist/instrumentation/letta/wrapper.js +180 -0
  353. package/dist/instrumentation/letta/wrapper.js.map +1 -0
  354. package/dist/instrumentation/llamaindex/index.d.ts +36 -0
  355. package/dist/instrumentation/llamaindex/index.js +221 -0
  356. package/dist/instrumentation/llamaindex/index.js.map +1 -0
  357. package/dist/instrumentation/llamaindex/wrapper.d.ts +36 -0
  358. package/dist/instrumentation/llamaindex/wrapper.js +811 -0
  359. package/dist/instrumentation/llamaindex/wrapper.js.map +1 -0
  360. package/dist/instrumentation/mcp/index.d.ts +20 -0
  361. package/dist/instrumentation/mcp/index.js +282 -0
  362. package/dist/instrumentation/mcp/index.js.map +1 -0
  363. package/dist/instrumentation/mcp/wrapper.d.ts +72 -0
  364. package/dist/instrumentation/mcp/wrapper.js +571 -0
  365. package/dist/instrumentation/mcp/wrapper.js.map +1 -0
  366. package/dist/instrumentation/mem0/index.d.ts +17 -0
  367. package/dist/instrumentation/mem0/index.js +113 -0
  368. package/dist/instrumentation/mem0/index.js.map +1 -0
  369. package/dist/instrumentation/mem0/wrapper.d.ts +37 -0
  370. package/dist/instrumentation/mem0/wrapper.js +298 -0
  371. package/dist/instrumentation/mem0/wrapper.js.map +1 -0
  372. package/dist/instrumentation/milvus/index.d.ts +11 -0
  373. package/dist/instrumentation/milvus/index.js +67 -0
  374. package/dist/instrumentation/milvus/index.js.map +1 -0
  375. package/dist/instrumentation/milvus/wrapper.d.ts +15 -0
  376. package/dist/instrumentation/milvus/wrapper.js +219 -0
  377. package/dist/instrumentation/milvus/wrapper.js.map +1 -0
  378. package/dist/instrumentation/mistral/index.d.ts +11 -0
  379. package/dist/instrumentation/mistral/index.js +66 -0
  380. package/dist/instrumentation/mistral/index.js.map +1 -0
  381. package/dist/instrumentation/mistral/wrapper.d.ts +49 -0
  382. package/dist/instrumentation/mistral/wrapper.js +482 -0
  383. package/dist/instrumentation/mistral/wrapper.js.map +1 -0
  384. package/dist/instrumentation/ollama/index.d.ts +11 -0
  385. package/dist/instrumentation/ollama/index.js +72 -0
  386. package/dist/instrumentation/ollama/index.js.map +1 -0
  387. package/dist/instrumentation/ollama/wrapper.d.ts +73 -0
  388. package/dist/instrumentation/ollama/wrapper.js +629 -0
  389. package/dist/instrumentation/ollama/wrapper.js.map +1 -0
  390. package/dist/instrumentation/openai/index.d.ts +11 -0
  391. package/dist/instrumentation/openai/index.js +79 -0
  392. package/dist/instrumentation/openai/index.js.map +1 -0
  393. package/dist/instrumentation/openai/wrapper.d.ts +80 -0
  394. package/dist/instrumentation/openai/wrapper.js +1121 -0
  395. package/dist/instrumentation/openai/wrapper.js.map +1 -0
  396. package/dist/instrumentation/openai-agents/index.d.ts +20 -0
  397. package/dist/instrumentation/openai-agents/index.js +174 -0
  398. package/dist/instrumentation/openai-agents/index.js.map +1 -0
  399. package/dist/instrumentation/openai-agents/processor.d.ts +35 -0
  400. package/dist/instrumentation/openai-agents/processor.js +249 -0
  401. package/dist/instrumentation/openai-agents/processor.js.map +1 -0
  402. package/dist/instrumentation/openai-agents/utils.d.ts +20 -0
  403. package/dist/instrumentation/openai-agents/utils.js +624 -0
  404. package/dist/instrumentation/openai-agents/utils.js.map +1 -0
  405. package/dist/instrumentation/pg/index.d.ts +20 -0
  406. package/dist/instrumentation/pg/index.js +74 -0
  407. package/dist/instrumentation/pg/index.js.map +1 -0
  408. package/dist/instrumentation/pg/wrapper.d.ts +66 -0
  409. package/dist/instrumentation/pg/wrapper.js +441 -0
  410. package/dist/instrumentation/pg/wrapper.js.map +1 -0
  411. package/dist/instrumentation/pinecone/index.d.ts +11 -0
  412. package/dist/instrumentation/pinecone/index.js +79 -0
  413. package/dist/instrumentation/pinecone/index.js.map +1 -0
  414. package/dist/instrumentation/pinecone/wrapper.d.ts +14 -0
  415. package/dist/instrumentation/pinecone/wrapper.js +198 -0
  416. package/dist/instrumentation/pinecone/wrapper.js.map +1 -0
  417. package/dist/instrumentation/qdrant/index.d.ts +11 -0
  418. package/dist/instrumentation/qdrant/index.js +67 -0
  419. package/dist/instrumentation/qdrant/index.js.map +1 -0
  420. package/dist/instrumentation/qdrant/wrapper.d.ts +14 -0
  421. package/dist/instrumentation/qdrant/wrapper.js +213 -0
  422. package/dist/instrumentation/qdrant/wrapper.js.map +1 -0
  423. package/dist/instrumentation/replicate/index.d.ts +11 -0
  424. package/dist/instrumentation/replicate/index.js +57 -0
  425. package/dist/instrumentation/replicate/index.js.map +1 -0
  426. package/dist/instrumentation/replicate/wrapper.d.ts +28 -0
  427. package/dist/instrumentation/replicate/wrapper.js +242 -0
  428. package/dist/instrumentation/replicate/wrapper.js.map +1 -0
  429. package/dist/instrumentation/strands/index.d.ts +21 -0
  430. package/dist/instrumentation/strands/index.js +83 -0
  431. package/dist/instrumentation/strands/index.js.map +1 -0
  432. package/dist/instrumentation/strands/processor.d.ts +51 -0
  433. package/dist/instrumentation/strands/processor.js +625 -0
  434. package/dist/instrumentation/strands/processor.js.map +1 -0
  435. package/dist/instrumentation/strands/utils.d.ts +24 -0
  436. package/dist/instrumentation/strands/utils.js +373 -0
  437. package/dist/instrumentation/strands/utils.js.map +1 -0
  438. package/dist/instrumentation/together/index.d.ts +11 -0
  439. package/dist/instrumentation/together/index.js +43 -0
  440. package/dist/instrumentation/together/index.js.map +1 -0
  441. package/dist/instrumentation/together/wrapper.d.ts +48 -0
  442. package/dist/instrumentation/together/wrapper.js +409 -0
  443. package/dist/instrumentation/together/wrapper.js.map +1 -0
  444. package/dist/instrumentation/transformers/index.d.ts +35 -0
  445. package/dist/instrumentation/transformers/index.js +119 -0
  446. package/dist/instrumentation/transformers/index.js.map +1 -0
  447. package/dist/instrumentation/transformers/wrapper.d.ts +49 -0
  448. package/dist/instrumentation/transformers/wrapper.js +472 -0
  449. package/dist/instrumentation/transformers/wrapper.js.map +1 -0
  450. package/dist/instrumentation/vercel-ai/index.d.ts +10 -0
  451. package/dist/instrumentation/vercel-ai/index.js +59 -0
  452. package/dist/instrumentation/vercel-ai/index.js.map +1 -0
  453. package/dist/instrumentation/vercel-ai/wrapper.d.ts +50 -0
  454. package/dist/instrumentation/vercel-ai/wrapper.js +539 -0
  455. package/dist/instrumentation/vercel-ai/wrapper.js.map +1 -0
  456. package/dist/instrumentation/vertexai/index.d.ts +11 -0
  457. package/dist/instrumentation/vertexai/index.js +70 -0
  458. package/dist/instrumentation/vertexai/index.js.map +1 -0
  459. package/dist/instrumentation/vertexai/wrapper.d.ts +67 -0
  460. package/dist/instrumentation/vertexai/wrapper.js +530 -0
  461. package/dist/instrumentation/vertexai/wrapper.js.map +1 -0
  462. package/dist/instrumentation/vllm/index.d.ts +13 -0
  463. package/dist/instrumentation/vllm/index.js +67 -0
  464. package/dist/instrumentation/vllm/index.js.map +1 -0
  465. package/dist/instrumentation/vllm/wrapper.d.ts +60 -0
  466. package/dist/instrumentation/vllm/wrapper.js +482 -0
  467. package/dist/instrumentation/vllm/wrapper.js.map +1 -0
  468. package/dist/llm/anthropic.d.ts +5 -0
  469. package/dist/llm/anthropic.js +39 -0
  470. package/dist/llm/anthropic.js.map +1 -0
  471. package/dist/llm/index.d.ts +10 -0
  472. package/dist/llm/index.js +93 -0
  473. package/dist/llm/index.js.map +1 -0
  474. package/dist/llm/openai.d.ts +6 -0
  475. package/dist/llm/openai.js +52 -0
  476. package/dist/llm/openai.js.map +1 -0
  477. package/dist/llm/providers.d.ts +7 -0
  478. package/dist/llm/providers.js +10 -0
  479. package/dist/llm/providers.js.map +1 -0
  480. package/dist/manual-trace.d.ts +40 -0
  481. package/dist/manual-trace.js +103 -0
  482. package/dist/manual-trace.js.map +1 -0
  483. package/dist/otel/__tests__/metrics.test.d.ts +1 -0
  484. package/dist/otel/__tests__/metrics.test.js +40 -0
  485. package/dist/otel/__tests__/metrics.test.js.map +1 -0
  486. package/dist/otel/events.d.ts +11 -0
  487. package/dist/otel/events.js +74 -0
  488. package/dist/otel/events.js.map +1 -0
  489. package/dist/otel/metrics.d.ts +35 -0
  490. package/dist/otel/metrics.js +219 -0
  491. package/dist/otel/metrics.js.map +1 -0
  492. package/dist/otel/tracing.d.ts +12 -0
  493. package/dist/otel/tracing.js +93 -0
  494. package/dist/otel/tracing.js.map +1 -0
  495. package/dist/otel/utils.d.ts +11 -0
  496. package/dist/otel/utils.js +34 -0
  497. package/dist/otel/utils.js.map +1 -0
  498. package/dist/pricing.json +951 -0
  499. package/dist/prompt-hub.d.ts +4 -0
  500. package/dist/prompt-hub.js +66 -0
  501. package/dist/prompt-hub.js.map +1 -0
  502. package/dist/register.d.ts +4 -0
  503. package/dist/register.js +52 -0
  504. package/dist/register.js.map +1 -0
  505. package/dist/score/__tests__/score.test.d.ts +1 -0
  506. package/dist/score/__tests__/score.test.js +143 -0
  507. package/dist/score/__tests__/score.test.js.map +1 -0
  508. package/dist/score/index.d.ts +2 -0
  509. package/dist/score/index.js +6 -0
  510. package/dist/score/index.js.map +1 -0
  511. package/dist/score/score.d.ts +15 -0
  512. package/dist/score/score.js +135 -0
  513. package/dist/score/score.js.map +1 -0
  514. package/dist/semantic-convention.d.ts +555 -0
  515. package/dist/semantic-convention.js +630 -0
  516. package/dist/semantic-convention.js.map +1 -0
  517. package/dist/types.d.ts +131 -0
  518. package/dist/types.js +3 -0
  519. package/dist/types.js.map +1 -0
  520. package/package.json +136 -0
@@ -0,0 +1,630 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Semantic conventions aligned with OpenTelemetry Gen AI spec and Python SDK.
5
+ * Old keys are kept for backward compatibility; new OTel-aligned keys are added with _OTEL suffix.
6
+ */
7
+ class SemanticConvention {
8
+ }
9
+ // Unstable SemConv
10
+ SemanticConvention.ATTR_DEPLOYMENT_ENVIRONMENT = 'deployment.environment';
11
+ // ----- GenAI General (legacy keys kept for backward compatibility) -----
12
+ SemanticConvention.GEN_AI_PROVIDER_NAME = 'gen_ai.system';
13
+ /** OTel standard: use for new code / future compatibility */
14
+ SemanticConvention.GEN_AI_PROVIDER_NAME_OTEL = 'gen_ai.provider.name';
15
+ // ----- OTel Gen AI & Server/Error (new keys; legacy below unchanged) -----
16
+ SemanticConvention.GEN_AI_OPERATION = 'gen_ai.operation.name';
17
+ SemanticConvention.GEN_AI_OUTPUT_TYPE = 'gen_ai.output.type';
18
+ SemanticConvention.GEN_AI_REQUEST_MODEL = 'gen_ai.request.model';
19
+ SemanticConvention.GEN_AI_REQUEST_SEED = 'gen_ai.request.seed';
20
+ SemanticConvention.GEN_AI_REQUEST_CHOICE_COUNT = 'gen_ai.request.choice.count';
21
+ SemanticConvention.GEN_AI_REQUEST_ENCODING_FORMATS = 'gen_ai.request.encoding_formats';
22
+ SemanticConvention.GEN_AI_REQUEST_FREQUENCY_PENALTY = 'gen_ai.request.frequency_penalty';
23
+ SemanticConvention.GEN_AI_REQUEST_MAX_TOKENS = 'gen_ai.request.max_tokens';
24
+ SemanticConvention.GEN_AI_REQUEST_PRESENCE_PENALTY = 'gen_ai.request.presence_penalty';
25
+ SemanticConvention.GEN_AI_REQUEST_STOP_SEQUENCES = 'gen_ai.request.stop_sequences';
26
+ SemanticConvention.GEN_AI_REQUEST_TEMPERATURE = 'gen_ai.request.temperature';
27
+ SemanticConvention.GEN_AI_REQUEST_TOP_K = 'gen_ai.request.top_k';
28
+ SemanticConvention.GEN_AI_REQUEST_TOP_P = 'gen_ai.request.top_p';
29
+ SemanticConvention.GEN_AI_CONVERSATION_ID = 'gen_ai.conversation.id';
30
+ SemanticConvention.GEN_AI_RESPONSE_FINISH_REASON = 'gen_ai.response.finish_reasons';
31
+ SemanticConvention.GEN_AI_RESPONSE_ID = 'gen_ai.response.id';
32
+ SemanticConvention.GEN_AI_RESPONSE_MODEL = 'gen_ai.response.model';
33
+ SemanticConvention.GEN_AI_INPUT_MESSAGES = 'gen_ai.input.messages';
34
+ SemanticConvention.GEN_AI_OUTPUT_MESSAGES = 'gen_ai.output.messages';
35
+ SemanticConvention.GEN_AI_SYSTEM_INSTRUCTIONS = 'gen_ai.system_instructions';
36
+ SemanticConvention.GEN_AI_TOOL_DEFINITIONS = 'gen_ai.tool.definitions';
37
+ SemanticConvention.GEN_AI_EMBEDDINGS_DIMENSION_COUNT = 'gen_ai.embeddings.dimension.count';
38
+ SemanticConvention.GEN_AI_TOKEN_TYPE = 'gen_ai.token.type';
39
+ SemanticConvention.GEN_AI_TOKEN_TYPE_INPUT = 'input';
40
+ SemanticConvention.GEN_AI_TOKEN_TYPE_OUTPUT = 'output';
41
+ SemanticConvention.GEN_AI_TOKEN_TYPE_REASONING = 'reasoning';
42
+ SemanticConvention.GEN_AI_CLIENT_OPERATION_DURATION = 'gen_ai.client.operation.duration';
43
+ SemanticConvention.GEN_AI_CLIENT_OPERATION_TIME_TO_FIRST_CHUNK = 'gen_ai.client.operation.time_to_first_chunk';
44
+ /** OTel standard span attribute for TTFT */
45
+ SemanticConvention.GEN_AI_RESPONSE_TIME_TO_FIRST_CHUNK = 'gen_ai.response.time_to_first_chunk';
46
+ SemanticConvention.GEN_AI_CLIENT_OPERATION_TIME_PER_OUTPUT_CHUNK = 'gen_ai.client.operation.time_per_output_chunk';
47
+ SemanticConvention.GEN_AI_CLIENT_TOKEN_USAGE = 'gen_ai.client.token.usage';
48
+ SemanticConvention.GEN_AI_SERVER_REQUEST_DURATION = 'gen_ai.server.request.duration';
49
+ SemanticConvention.GEN_AI_SERVER_TBT = 'gen_ai.server.time_per_output_token';
50
+ SemanticConvention.GEN_AI_SERVER_TTFT = 'gen_ai.server.time_to_first_token';
51
+ SemanticConvention.SERVER_ADDRESS = 'server.address';
52
+ SemanticConvention.SERVER_PORT = 'server.port';
53
+ SemanticConvention.ERROR_TYPE = 'error.type';
54
+ SemanticConvention.ERROR_TYPE_UNAVAILABLE = 'unavailable';
55
+ SemanticConvention.ERROR_TYPE_AUTHENTICATION = 'authentication';
56
+ SemanticConvention.ERROR_TYPE_TIMEOUT = 'timeout';
57
+ SemanticConvention.ERROR_TYPE_RATE_LIMITED = 'rate_limited';
58
+ SemanticConvention.ERROR_TYPE_PERMISSION = 'permission';
59
+ SemanticConvention.ERROR_TYPE_NOT_FOUND = 'not_found';
60
+ SemanticConvention.ERROR_TYPE_INVALID_REQUEST = 'invalid_request';
61
+ SemanticConvention.ERROR_TYPE_SERVER_ERROR = 'server_error';
62
+ // GenAI event names (OTel)
63
+ SemanticConvention.GEN_AI_USER_MESSAGE = 'gen_ai.user.message';
64
+ SemanticConvention.GEN_AI_SYSTEM_MESSAGE = 'gen_ai.system.message';
65
+ SemanticConvention.GEN_AI_ASSISTANT_MESSAGE = 'gen_ai.assistant.message';
66
+ SemanticConvention.GEN_AI_TOOL_MESSAGE = 'gen_ai.tools.message';
67
+ SemanticConvention.GEN_AI_CHOICE = 'gen_ai.choice';
68
+ SemanticConvention.GEN_AI_CLIENT_INFERENCE_OPERATION_DETAILS = 'gen_ai.client.inference.operation.details';
69
+ // ----- GenAI General (Shield360 + OTel) -----
70
+ SemanticConvention.GEN_AI_ENDPOINT = 'gen_ai.endpoint';
71
+ SemanticConvention.GEN_AI_ENVIRONMENT = 'gen_ai.environment';
72
+ SemanticConvention.GEN_AI_APPLICATION_NAME = 'gen_ai.application_name';
73
+ SemanticConvention.GEN_AI_HUB_OWNER = 'gen_ai.hub.owner';
74
+ SemanticConvention.GEN_AI_HUB_REPO = 'gen_ai.hub.repo';
75
+ SemanticConvention.GEN_AI_RETRIEVAL_SOURCE = 'gen_ai.retrieval.source';
76
+ SemanticConvention.GEN_AI_REQUESTS = 'gen_ai.total.requests';
77
+ SemanticConvention.GEN_AI_SDK_VERSION = 'gen_ai.sdk.version';
78
+ // GenAI Request (extended / Shield360)
79
+ SemanticConvention.GEN_AI_REQUEST_IS_STREAM = 'gen_ai.request.is_stream';
80
+ /** OTel standard: gen_ai.request.stream (replaces gen_ai.request.is_stream) */
81
+ SemanticConvention.GEN_AI_REQUEST_STREAM = 'gen_ai.request.stream';
82
+ SemanticConvention.GEN_AI_REQUEST_USER = 'gen_ai.request.user';
83
+ SemanticConvention.GEN_AI_REQUEST_EMBEDDING_DIMENSION = 'gen_ai.request.embedding_dimension';
84
+ SemanticConvention.GEN_AI_REQUEST_TOOL_CHOICE = 'gen_ai.request.tool_choice';
85
+ SemanticConvention.GEN_AI_REQUEST_AUDIO_VOICE = 'gen_ai.request.audio_voice';
86
+ SemanticConvention.GEN_AI_REQUEST_AUDIO_SETTINGS = 'gen_ai.request.audio_settings';
87
+ SemanticConvention.GEN_AI_REQUEST_AUDIO_DURATION = 'gen_ai.request.audio_duration';
88
+ SemanticConvention.GEN_AI_REQUEST_AUDIO_RESPONSE_FORMAT = 'gen_ai.request.audio_response_format';
89
+ SemanticConvention.GEN_AI_REQUEST_AUDIO_SPEED = 'gen_ai.request.audio_speed';
90
+ SemanticConvention.GEN_AI_REQUEST_FINETUNE_STATUS = 'gen_ai.request.fine_tune_status';
91
+ SemanticConvention.GEN_AI_REQUEST_FINETUNE_MODEL_SUFFIX = 'gen_ai.request.fine_tune_model_suffix';
92
+ SemanticConvention.GEN_AI_REQUEST_FINETUNE_MODEL_EPOCHS = 'gen_ai.request.fine_tune_n_epochs';
93
+ SemanticConvention.GEN_AI_REQUEST_FINETUNE_MODEL_LRM = 'gen_ai.request.learning_rate_multiplier';
94
+ SemanticConvention.GEN_AI_REQUEST_FINETUNE_BATCH_SIZE = 'gen_ai.request.fine_tune_batch_size';
95
+ SemanticConvention.GEN_AI_REQUEST_VALIDATION_FILE = 'gen_ai.request.validation_file';
96
+ SemanticConvention.GEN_AI_REQUEST_TRAINING_FILE = 'gen_ai.request.training_file';
97
+ SemanticConvention.GEN_AI_REQUEST_IMAGE_SIZE = 'gen_ai.request.image_size';
98
+ SemanticConvention.GEN_AI_REQUEST_IMAGE_QUALITY = 'gen_ai.request.image_quality';
99
+ SemanticConvention.GEN_AI_REQUEST_IMAGE_STYLE = 'gen_ai.request.image_style';
100
+ SemanticConvention.GEN_AI_REQUEST_SAFE_PROMPT = 'gen_ai.request.safe_prompt';
101
+ SemanticConvention.GEN_AI_REQUEST_REASONING_EFFORT = 'gen_ai.request.reasoning_effort';
102
+ /** Legacy key for reading duration from span attributes */
103
+ SemanticConvention.GEN_AI_DURATION_LEGACY = 'gen_ai.duration';
104
+ // GenAI Usage
105
+ SemanticConvention.GEN_AI_USAGE_INPUT_TOKENS = 'gen_ai.usage.input_tokens';
106
+ SemanticConvention.GEN_AI_USAGE_OUTPUT_TOKENS = 'gen_ai.usage.output_tokens';
107
+ SemanticConvention.GEN_AI_USAGE_TOTAL_TOKENS = 'gen_ai.usage.total_tokens';
108
+ SemanticConvention.GEN_AI_USAGE_COST = 'gen_ai.usage.cost';
109
+ SemanticConvention.GEN_AI_USAGE_REASONING_TOKENS = 'gen_ai.usage.reasoning_tokens';
110
+ // Enhanced token details (for prompt caching, audio tokens, etc.)
111
+ SemanticConvention.GEN_AI_USAGE_COMPLETION_TOKENS_DETAILS_AUDIO = 'gen_ai.usage.completion_tokens_details.audio';
112
+ SemanticConvention.GEN_AI_USAGE_COMPLETION_TOKENS_DETAILS_REASONING = 'gen_ai.usage.completion_tokens_details.reasoning';
113
+ SemanticConvention.GEN_AI_USAGE_PROMPT_TOKENS_DETAILS_CACHE_READ = 'gen_ai.usage.prompt_tokens_details.cache_read';
114
+ SemanticConvention.GEN_AI_USAGE_PROMPT_TOKENS_DETAILS_CACHE_WRITE = 'gen_ai.usage.prompt_tokens_details.cache_write';
115
+ // OTel semconv standard cache token attribute names (aligned with Python SDK)
116
+ SemanticConvention.GEN_AI_USAGE_CACHE_CREATION_INPUT_TOKENS = 'gen_ai.usage.cache_creation.input_tokens';
117
+ SemanticConvention.GEN_AI_USAGE_CACHE_READ_INPUT_TOKENS = 'gen_ai.usage.cache_read.input_tokens';
118
+ // GenAI Response (extended)
119
+ SemanticConvention.GEN_AI_RESPONSE_IMAGE = 'gen_ai.response.image';
120
+ SemanticConvention.GEN_AI_RESPONSE_IMAGE_SIZE = 'gen_ai.request.image_size';
121
+ SemanticConvention.GEN_AI_RESPONSE_IMAGE_QUALITY = 'gen_ai.request.image_quality';
122
+ SemanticConvention.GEN_AI_RESPONSE_IMAGE_STYLE = 'gen_ai.request.image_style';
123
+ // OpenAI-specific attributes (openai.* namespace per OTel semconv)
124
+ SemanticConvention.OPENAI_REQUEST_SERVICE_TIER = 'openai.request.service_tier';
125
+ SemanticConvention.OPENAI_RESPONSE_SERVICE_TIER = 'openai.response.service_tier';
126
+ SemanticConvention.OPENAI_RESPONSE_SYSTEM_FINGERPRINT = 'openai.response.system_fingerprint';
127
+ SemanticConvention.OPENAI_API_TYPE = 'openai.api.type';
128
+ /** @deprecated Use OPENAI_RESPONSE_SYSTEM_FINGERPRINT for OpenAI */
129
+ SemanticConvention.GEN_AI_RESPONSE_SYSTEM_FINGERPRINT = 'gen_ai.response.system_fingerprint';
130
+ // GenAI Content
131
+ SemanticConvention.GEN_AI_CONTENT_PROMPT_EVENT = 'gen_ai.content.prompt';
132
+ SemanticConvention.GEN_AI_CONTENT_COMPLETION_EVENT = 'gen_ai.content.completion';
133
+ SemanticConvention.GEN_AI_CONTENT_REVISED_PROMPT = 'gen_ai.content.revised_prompt';
134
+ SemanticConvention.GEN_AI_CONTENT_REASONING = 'gen_ai.content.reasoning';
135
+ // Tool attributes (legacy: gen_ai.tool.call.type; OTel: gen_ai.tool.type)
136
+ SemanticConvention.GEN_AI_TOOL_NAME = 'gen_ai.tool.name';
137
+ SemanticConvention.GEN_AI_TOOL_TYPE = 'gen_ai.tool.call.type';
138
+ /** OTel standard */
139
+ SemanticConvention.GEN_AI_TOOL_TYPE_OTEL = 'gen_ai.tool.type';
140
+ SemanticConvention.GEN_AI_TOOL_DESCRIPTION = 'gen_ai.tool.description';
141
+ SemanticConvention.GEN_AI_TOOL_DEFINITION = 'gen_ai.tool.definition';
142
+ SemanticConvention.GEN_AI_TOOL_CALL_ID = 'gen_ai.tool.call.id';
143
+ SemanticConvention.GEN_AI_TOOL_CALL_ARGUMENTS = 'gen_ai.tool.call.arguments';
144
+ SemanticConvention.GEN_AI_TOOL_CALL_RESULT = 'gen_ai.tool.call.result';
145
+ SemanticConvention.GEN_AI_TOOL_INPUT = 'gen_ai.tool.input';
146
+ SemanticConvention.GEN_AI_TOOL_OUTPUT = 'gen_ai.tool.output';
147
+ SemanticConvention.GEN_AI_TOOL_ARGS = 'gen_ai.tool.args';
148
+ // Retrieval (framework / RAG)
149
+ SemanticConvention.GEN_AI_RETRIEVAL_QUERY = 'gen_ai.retrieval.query';
150
+ SemanticConvention.GEN_AI_RETRIEVAL_QUERY_TEXT = 'gen_ai.retrieval.query.text';
151
+ SemanticConvention.GEN_AI_RETRIEVAL_DOCUMENTS = 'gen_ai.retrieval.documents';
152
+ SemanticConvention.GEN_AI_RETRIEVAL_DOCUMENT_COUNT = 'gen_ai.retrieval.document_count';
153
+ SemanticConvention.GEN_AI_DATA_SOURCE_ID = 'gen_ai.data_source.id';
154
+ SemanticConvention.GEN_AI_RAG_SIMILARITY_THRESHOLD = 'gen_ai.rag.similarity_threshold';
155
+ SemanticConvention.GEN_AI_RAG_DOCUMENTS_PATH = 'gen_ai.rag.documents_path';
156
+ SemanticConvention.GEN_AI_RAG_FILE_IDS = 'gen_ai.rag.file_ids';
157
+ SemanticConvention.GEN_AI_RAG_MAX_NEIGHBORS = 'gen_ai.rag.max_neighbors';
158
+ SemanticConvention.GEN_AI_RAG_MAX_SEGMENTS = 'gen_ai.rag.max_segments';
159
+ SemanticConvention.GEN_AI_RAG_STRATEGY = 'gen_ai.rag.strategy';
160
+ // Agent (OTel Semconv)
161
+ SemanticConvention.GEN_AI_AGENT_NAME = 'gen_ai.agent.name';
162
+ SemanticConvention.GEN_AI_AGENT_ID = 'gen_ai.agent.id';
163
+ SemanticConvention.GEN_AI_AGENT_DESCRIPTION = 'gen_ai.agent.description';
164
+ SemanticConvention.GEN_AI_AGENT_VERSION = 'gen_ai.agent.version';
165
+ // Shield360 vendor extension: auto-computed canonical fingerprint over the
166
+ // parts of an agent's definition that meaningfully change its behavior
167
+ // (system prompt + tools + primary model + sampling config). Stamped on
168
+ // every chat span/event so the server can group traffic by version.
169
+ SemanticConvention.SHIELD360_AGENT_VERSION_HASH = 'shield360.agent.version_hash';
170
+ /** Correlate CI / evidence packages with a Trace Governance Passport export. */
171
+ SemanticConvention.SHIELD360_GOVERNANCE_REPORT_ID = 'shield360.governance.report_id';
172
+ SemanticConvention.GEN_AI_AGENT_SOURCE = 'gen_ai.agent.source';
173
+ SemanticConvention.GEN_AI_AGENT_ACTION_TOOL = 'gen_ai.agent.action.tool';
174
+ SemanticConvention.GEN_AI_AGENT_ACTION_TOOL_INPUT = 'gen_ai.agent.action.tool_input';
175
+ SemanticConvention.GEN_AI_AGENT_ACTION_LOG = 'gen_ai.agent.action.log';
176
+ SemanticConvention.GEN_AI_AGENT_FINISH_OUTPUT = 'gen_ai.agent.finish.output';
177
+ SemanticConvention.GEN_AI_AGENT_FINISH_LOG = 'gen_ai.agent.finish.log';
178
+ SemanticConvention.GEN_AI_OPERATION_TYPE = 'gen_ai.operation.type';
179
+ SemanticConvention.GEN_AI_AGENT_TYPE = 'gen_ai.agent.type';
180
+ SemanticConvention.GEN_AI_AGENT_TYPE_BROWSER = 'browser';
181
+ SemanticConvention.GEN_AI_AGENT_BROWSE_URL = 'gen_ai.agent.browse_url';
182
+ SemanticConvention.GEN_AI_AGENT_STEP_COUNT = 'gen_ai.agent.step_count';
183
+ SemanticConvention.GEN_AI_AGENT_MAX_STEPS = 'gen_ai.agent.max_steps';
184
+ SemanticConvention.GEN_AI_BROWSER_AGENT_TASK_ID = 'gen_ai.agent.task_id';
185
+ SemanticConvention.GEN_AI_AGENT_SESSION_ID = 'gen_ai.agent.session_id';
186
+ SemanticConvention.GEN_AI_AGENT_USE_VISION = 'gen_ai.agent.use_vision';
187
+ SemanticConvention.GEN_AI_AGENT_HEADLESS = 'gen_ai.agent.headless';
188
+ SemanticConvention.GEN_AI_AGENT_ALLOWED_DOMAINS = 'gen_ai.agent.allowed_domains';
189
+ SemanticConvention.GEN_AI_AGENT_TOTAL_ACTIONS = 'gen_ai.agent.total_actions';
190
+ SemanticConvention.GEN_AI_AGENT_SUCCESSFUL_STEPS = 'gen_ai.agent.successful_steps';
191
+ SemanticConvention.GEN_AI_AGENT_FAILED_STEPS = 'gen_ai.agent.failed_steps';
192
+ SemanticConvention.GEN_AI_AGENT_SUCCESS_RATE = 'gen_ai.agent.success_rate';
193
+ SemanticConvention.GEN_AI_AGENT_FINAL_RESULT = 'gen_ai.agent.final_result';
194
+ SemanticConvention.GEN_AI_AGENT_EXECUTION_TIME = 'gen_ai.agent.execution_time';
195
+ SemanticConvention.GEN_AI_AGENT_THINKING = 'gen_ai.agent.thinking';
196
+ SemanticConvention.GEN_AI_AGENT_MEMORY = 'gen_ai.agent.memory';
197
+ SemanticConvention.GEN_AI_AGENT_NEXT_GOAL = 'gen_ai.agent.next_goal';
198
+ SemanticConvention.GEN_AI_AGENT_EVALUATION = 'gen_ai.agent.evaluation';
199
+ SemanticConvention.GEN_AI_AGENT_ACTIONS = 'gen_ai.agent.actions';
200
+ SemanticConvention.GEN_AI_AGENT_ACTIONS_COUNT = 'gen_ai.agent.actions_count';
201
+ SemanticConvention.GEN_AI_AGENT_PAGE_TITLE = 'gen_ai.agent.page_title';
202
+ SemanticConvention.GEN_AI_ACTION_SUCCESS = 'gen_ai.action.success';
203
+ SemanticConvention.GEN_AI_ACTION_ERROR = 'gen_ai.action.error';
204
+ SemanticConvention.GEN_AI_ACTION_TYPE = 'gen_ai.action.type';
205
+ SemanticConvention.GEN_AI_ACTION_INDEX = 'gen_ai.action.index';
206
+ // Web crawling / scraping (Firecrawl)
207
+ SemanticConvention.GEN_AI_CRAWL_URL_COUNT = 'gen_ai.crawl.url_count';
208
+ SemanticConvention.GEN_AI_CRAWL_RESULT_SUCCESS = 'gen_ai.crawl.result.success';
209
+ SemanticConvention.GEN_AI_CRAWL_RESULT_SUCCESS_COUNT = 'gen_ai.crawl.result.success_count';
210
+ SemanticConvention.GEN_AI_CRAWL_RESULT_SUCCESS_RATE = 'gen_ai.crawl.result.success_rate';
211
+ SemanticConvention.GEN_AI_CRAWL_RESULT_STATUS_CODE = 'gen_ai.crawl.result.status_code';
212
+ SemanticConvention.GEN_AI_CRAWL_RESULT_HTML_LENGTH = 'gen_ai.crawl.result.html_length';
213
+ SemanticConvention.GEN_AI_CRAWL_RESULT_MARKDOWN_LENGTH = 'gen_ai.crawl.result.markdown_length';
214
+ SemanticConvention.GEN_AI_CRAWL_RESULT_LINKS_COUNT = 'gen_ai.crawl.result.links_count';
215
+ SemanticConvention.GEN_AI_MONITOR_TASK_STATUS = 'gen_ai.monitor.task_status';
216
+ SemanticConvention.GEN_AI_RESPONSE_WARNING = 'gen_ai.response.warning';
217
+ SemanticConvention.GEN_AI_RESPONSE_ERROR = 'gen_ai.response.error';
218
+ SemanticConvention.GEN_AI_RESPONSE_TITLE = 'gen_ai.response.title';
219
+ SemanticConvention.GEN_AI_RESPONSE_DESCRIPTION = 'gen_ai.response.description';
220
+ SemanticConvention.GEN_AI_RESPONSE_HAS_SCREENSHOT = 'gen_ai.response.has_screenshot';
221
+ SemanticConvention.GEN_AI_RESPONSE_PROGRESS_COMPLETED = 'gen_ai.response.progress_completed';
222
+ SemanticConvention.GEN_AI_RESPONSE_PROGRESS_TOTAL = 'gen_ai.response.progress_total';
223
+ SemanticConvention.GEN_AI_RESPONSE_COMPLETION_RATE = 'gen_ai.response.completion_rate';
224
+ SemanticConvention.GEN_AI_RESPONSE_CREDITS_USED = 'gen_ai.response.credits_used';
225
+ SemanticConvention.GEN_AI_RESPONSE_JOB_ID = 'gen_ai.response.job_id';
226
+ SemanticConvention.GEN_AI_RESPONSE_EXPIRES_AT = 'gen_ai.response.expires_at';
227
+ SemanticConvention.GEN_AI_RESPONSE_DATA_COUNT = 'gen_ai.response.data_count';
228
+ SemanticConvention.GEN_AI_RESPONSE_TOTAL_LINKS_COUNT = 'gen_ai.response.total_links_count';
229
+ SemanticConvention.GEN_AI_RESPONSE_TOTAL_CONTENT_LENGTH = 'gen_ai.response.total_content_length';
230
+ SemanticConvention.GEN_AI_RESPONSE_SUCCESS_RATE = 'gen_ai.response.success_rate';
231
+ SemanticConvention.GEN_AI_RESPONSE_TYPE = 'gen_ai.response.type';
232
+ SemanticConvention.ERROR_MESSAGE = 'error.message';
233
+ SemanticConvention.ERROR_CATEGORY = 'error.category';
234
+ SemanticConvention.ERROR_RESPONSE_TEXT = 'error.response_text';
235
+ SemanticConvention.HTTP_STATUS_CODE = 'http.status_code';
236
+ // Workflow / framework
237
+ SemanticConvention.GEN_AI_WORKFLOW_INPUT = 'gen_ai.workflow.input';
238
+ SemanticConvention.GEN_AI_WORKFLOW_OUTPUT = 'gen_ai.workflow.output';
239
+ SemanticConvention.GEN_AI_WORKFLOW_TYPE = 'gen_ai.workflow.type';
240
+ SemanticConvention.GEN_AI_WORKFLOW_NAME = 'gen_ai.workflow.name';
241
+ SemanticConvention.GEN_AI_FRAMEWORK_ERROR_CLASS = 'gen_ai.framework.error.class';
242
+ SemanticConvention.GEN_AI_FRAMEWORK_ERROR_TYPE = 'gen_ai.framework.error.type';
243
+ SemanticConvention.GEN_AI_FRAMEWORK_ERROR_MESSAGE = 'gen_ai.framework.error.message';
244
+ SemanticConvention.GEN_AI_SERIALIZED_NAME = 'gen_ai.serialized.name';
245
+ SemanticConvention.GEN_AI_SERIALIZED_SIGNATURE = 'gen_ai.serialized.signature';
246
+ SemanticConvention.GEN_AI_SERIALIZED_DOC = 'gen_ai.serialized.doc';
247
+ SemanticConvention.GEN_AI_SERIALIZED_MODULE = 'gen_ai.serialized.module';
248
+ SemanticConvention.GEN_AI_REQUEST_PROVIDER = 'gen_ai.request.provider';
249
+ SemanticConvention.GEN_AI_DATA_SOURCES = 'gen_ai.data_source_count';
250
+ SemanticConvention.GEN_AI_OPERATION_TYPE_TEXT_COMPLETION = 'text_completion';
251
+ SemanticConvention.GEN_AI_OPERATION_TYPE_CHAT = 'chat';
252
+ SemanticConvention.GEN_AI_OPERATION_TYPE_EMBEDDING = 'embeddings';
253
+ SemanticConvention.GEN_AI_OPERATION_TYPE_IMAGE = 'image';
254
+ SemanticConvention.GEN_AI_OPERATION_TYPE_AUDIO = 'audio';
255
+ SemanticConvention.GEN_AI_OPERATION_TYPE_FINETUNING = 'fine_tuning';
256
+ SemanticConvention.GEN_AI_OPERATION_TYPE_VECTORDB = 'vectordb';
257
+ SemanticConvention.GEN_AI_OPERATION_TYPE_FRAMEWORK = 'invoke_workflow';
258
+ SemanticConvention.GEN_AI_OPERATION_TYPE_AGENT = 'invoke_agent';
259
+ SemanticConvention.GEN_AI_OPERATION_TYPE_EXECUTE_AGENT_TASK = 'execute_task';
260
+ SemanticConvention.GEN_AI_OPERATION_TYPE_TOOLS = 'execute_tool';
261
+ SemanticConvention.GEN_AI_OPERATION_TYPE_RETRIEVE = 'retrieval';
262
+ SemanticConvention.GEN_AI_OPERATION_TYPE_MEMORY = 'memory';
263
+ SemanticConvention.GEN_AI_OPERATION_TYPE_SCRAPE = 'scrape';
264
+ SemanticConvention.GEN_AI_OPERATION_TYPE_CRAWL = 'crawl';
265
+ SemanticConvention.GEN_AI_OPERATION_TYPE_MAP = 'map';
266
+ SemanticConvention.GEN_AI_OPERATION_TYPE_SEARCH = 'search';
267
+ SemanticConvention.GEN_AI_OPERATION_TYPE_EXTRACT = 'extract';
268
+ SemanticConvention.GEN_AI_OPERATION_TYPE_EXTRACT_STATUS = 'extract_status';
269
+ SemanticConvention.GEN_AI_OPERATION_TYPE_CRAWL_STATUS = 'crawl_status';
270
+ SemanticConvention.GEN_AI_OPERATION_TYPE_SCRAPE_STATUS = 'scrape_status';
271
+ SemanticConvention.GEN_AI_OPERATION_TYPE_CANCEL = 'cancel';
272
+ // GenAI Output Types
273
+ SemanticConvention.GEN_AI_OUTPUT_TYPE_TEXT = 'text';
274
+ SemanticConvention.GEN_AI_OUTPUT_TYPE_JSON = 'json';
275
+ SemanticConvention.GEN_AI_OUTPUT_TYPE_IMAGE = 'image';
276
+ SemanticConvention.GEN_AI_OUTPUT_TYPE_SPEECH = 'speech';
277
+ SemanticConvention.GEN_AI_SYSTEM_HUGGING_FACE = 'huggingface';
278
+ SemanticConvention.GEN_AI_SYSTEM_REPLICATE = 'replicate';
279
+ SemanticConvention.GEN_AI_SYSTEM_OPENAI = 'openai';
280
+ SemanticConvention.GEN_AI_SYSTEM_AZURE_OPENAI = 'azure.ai.openai';
281
+ SemanticConvention.GEN_AI_SYSTEM_ANTHROPIC = 'anthropic';
282
+ SemanticConvention.GEN_AI_SYSTEM_COHERE = 'cohere';
283
+ SemanticConvention.GEN_AI_SYSTEM_MISTRAL = 'mistral_ai';
284
+ SemanticConvention.GEN_AI_SYSTEM_AWS_BEDROCK = 'aws.bedrock';
285
+ SemanticConvention.GEN_AI_SYSTEM_VERTEXAI = 'vertex_ai';
286
+ SemanticConvention.GEN_AI_SYSTEM_LANGCHAIN = 'langchain';
287
+ SemanticConvention.GEN_AI_SYSTEM_VERCEL_AI = 'vercel_ai';
288
+ SemanticConvention.GEN_AI_SYSTEM_OLLAMA = 'ollama';
289
+ SemanticConvention.GEN_AI_SYSTEM_VLLM = 'vllm';
290
+ SemanticConvention.GEN_AI_SYSTEM_GOOGLE_AI_STUDIO = 'gcp.gemini';
291
+ SemanticConvention.GEN_AI_SYSTEM_GROQ = 'groq';
292
+ SemanticConvention.GEN_AI_SYSTEM_AI21 = 'ai21';
293
+ SemanticConvention.GEN_AI_SYSTEM_DIGITALOCEAN = 'digitalocean';
294
+ SemanticConvention.GEN_AI_SYSTEM_AZURE_AI_INFERENCE = 'azure.ai.inference';
295
+ SemanticConvention.GEN_AI_SYSTEM_LLAMAINDEX = 'llamaindex';
296
+ SemanticConvention.GEN_AI_SYSTEM_TOGETHER = 'together';
297
+ SemanticConvention.GEN_AI_SYSTEM_LANGGRAPH = 'langgraph';
298
+ SemanticConvention.GEN_AI_SYSTEM_OPENAI_AGENTS = 'openai_agents';
299
+ SemanticConvention.GEN_AI_SYSTEM_MASTRA = 'mastra';
300
+ SemanticConvention.GEN_AI_SYSTEM_CLAUDE_AGENT_SDK = 'claude_agent_sdk';
301
+ SemanticConvention.GEN_AI_SYSTEM_GOOGLE_ADK = 'google_adk';
302
+ SemanticConvention.GEN_AI_SYSTEM_STRANDS = 'strands_agents';
303
+ SemanticConvention.GEN_AI_SYSTEM_CURSOR = 'cursor';
304
+ SemanticConvention.GEN_AI_SYSTEM_ELEVENLABS = 'elevenlabs';
305
+ SemanticConvention.GEN_AI_SYSTEM_ASSEMBLYAI = 'assemblyai';
306
+ SemanticConvention.GEN_AI_SYSTEM_MCP = 'mcp';
307
+ SemanticConvention.GEN_AI_SYSTEM_MEM0 = 'mem0';
308
+ SemanticConvention.GEN_AI_SYSTEM_BROWSER_USE = 'browser_use';
309
+ SemanticConvention.GEN_AI_SYSTEM_FIRECRAWL = 'firecrawl';
310
+ SemanticConvention.GEN_AI_SYSTEM_LETTA = 'letta';
311
+ // ----- Letta (agent platform) -----
312
+ // Operation type used for Letta list/memory/context workflow operations.
313
+ SemanticConvention.GEN_AI_OPERATION_TYPE_WORKFLOW = 'workflow';
314
+ // Agent attributes (general, reusable)
315
+ SemanticConvention.GEN_AI_AGENT_SLUG = 'gen_ai.agent.slug';
316
+ SemanticConvention.GEN_AI_AGENT_INSTRUCTIONS = 'gen_ai.agent.instructions';
317
+ SemanticConvention.GEN_AI_AGENT_STEP_MESSAGES = 'gen_ai.agent.step_messages';
318
+ // Model configuration attributes (general, reusable)
319
+ SemanticConvention.GEN_AI_MODEL_HANDLE = 'gen_ai.model.handle';
320
+ // Additional request parameters (general, reusable across integrations)
321
+ SemanticConvention.GEN_AI_REQUEST_CONTEXT_WINDOW = 'gen_ai.request.context_window';
322
+ SemanticConvention.GEN_AI_REQUEST_ENABLE_REASONER = 'gen_ai.request.enable_reasoner';
323
+ SemanticConvention.GEN_AI_REQUEST_ASYNC = 'gen_ai.request.async';
324
+ SemanticConvention.GEN_AI_REQUEST_RETURN_SEQUENCE_NO = 'gen_ai.request.return_sequence_no';
325
+ SemanticConvention.GEN_AI_REQUEST_INCLUDE_FINAL_MESSAGE = 'gen_ai.request.include_final_message';
326
+ SemanticConvention.GEN_AI_REQUEST_MESSAGE_COUNT = 'gen_ai.request.message_count';
327
+ // Streaming attributes (general, reusable)
328
+ SemanticConvention.GEN_AI_STREAMING_CHUNK_COUNT = 'gen_ai.streaming.chunk_count';
329
+ SemanticConvention.GEN_AI_STREAMING_RESPONSE_COUNT = 'gen_ai.streaming.response_count';
330
+ // ----- MCP (Model Context Protocol) -----
331
+ // Operation types
332
+ SemanticConvention.GEN_AI_OPERATION_TYPE_MCP_TOOL_CALL = 'mcp_tool_call';
333
+ SemanticConvention.GEN_AI_OPERATION_TYPE_MCP_TOOL_LIST = 'mcp_tool_list';
334
+ SemanticConvention.GEN_AI_OPERATION_TYPE_MCP_RESOURCE_READ = 'mcp_resource_read';
335
+ SemanticConvention.GEN_AI_OPERATION_TYPE_MCP_RESOURCE_LIST = 'mcp_resource_list';
336
+ SemanticConvention.GEN_AI_OPERATION_TYPE_MCP_REQUEST = 'mcp_request';
337
+ SemanticConvention.GEN_AI_OPERATION_TYPE_MCP_RESPONSE = 'mcp_response';
338
+ SemanticConvention.GEN_AI_OPERATION_TYPE_MCP_SERVER = 'mcp_server';
339
+ SemanticConvention.GEN_AI_OPERATION_TYPE_MCP_CLIENT = 'mcp_client';
340
+ // Core MCP attributes
341
+ SemanticConvention.MCP_OPERATION = 'mcp.operation.name';
342
+ SemanticConvention.MCP_SYSTEM = 'mcp.system';
343
+ SemanticConvention.MCP_SDK_VERSION = 'mcp.sdk.version';
344
+ SemanticConvention.MCP_METHOD = 'mcp.method';
345
+ SemanticConvention.MCP_MESSAGE_ID = 'mcp.message_id';
346
+ SemanticConvention.MCP_JSONRPC_VERSION = 'mcp.jsonrpc_version';
347
+ SemanticConvention.MCP_PARAMS = 'mcp.params';
348
+ SemanticConvention.MCP_RESULT = 'mcp.result';
349
+ // MCP error attributes
350
+ SemanticConvention.MCP_ERROR_CODE = 'mcp.error.code';
351
+ SemanticConvention.MCP_ERROR_MESSAGE = 'mcp.error.message';
352
+ SemanticConvention.MCP_ERROR_DATA = 'mcp.error.data';
353
+ // MCP tool attributes
354
+ SemanticConvention.MCP_TOOL_NAME = 'mcp.tool.name';
355
+ SemanticConvention.MCP_TOOL_DESCRIPTION = 'mcp.tool.description';
356
+ SemanticConvention.MCP_TOOL_ARGUMENTS = 'mcp.tool.arguments';
357
+ SemanticConvention.MCP_TOOL_RESULT = 'mcp.tool.result';
358
+ // MCP resource attributes
359
+ SemanticConvention.MCP_RESOURCE_URI = 'mcp.resource.uri';
360
+ SemanticConvention.MCP_RESOURCE_NAME = 'mcp.resource.name';
361
+ SemanticConvention.MCP_RESOURCE_DESCRIPTION = 'mcp.resource.description';
362
+ SemanticConvention.MCP_RESOURCE_MIME_TYPE = 'mcp.resource.mime_type';
363
+ SemanticConvention.MCP_RESOURCE_SIZE = 'mcp.resource.size';
364
+ // MCP transport attributes
365
+ SemanticConvention.MCP_TRANSPORT_TYPE = 'mcp.transport.type';
366
+ SemanticConvention.MCP_TRANSPORT_STDIO = 'stdio';
367
+ SemanticConvention.MCP_TRANSPORT_SSE = 'sse';
368
+ SemanticConvention.MCP_TRANSPORT_WEBSOCKET = 'websocket';
369
+ // MCP payload attributes
370
+ SemanticConvention.MCP_REQUEST_PAYLOAD = 'mcp.request.payload';
371
+ SemanticConvention.MCP_RESPONSE_PAYLOAD = 'mcp.response.payload';
372
+ // MCP client/server attributes
373
+ SemanticConvention.MCP_CLIENT_OPERATION_DURATION = 'mcp.client.operation.duration';
374
+ SemanticConvention.MCP_SERVER_NAME = 'mcp.server.name';
375
+ SemanticConvention.MCP_SERVER_VERSION = 'mcp.server.version';
376
+ SemanticConvention.MCP_CLIENT_VERSION = 'mcp.client.version';
377
+ SemanticConvention.MCP_CLIENT_TYPE = 'mcp.client.type';
378
+ SemanticConvention.MCP_RESPONSE_SIZE = 'mcp.response.size';
379
+ // MCP prompt attributes
380
+ SemanticConvention.MCP_PROMPT_NAME = 'mcp.prompt.name';
381
+ SemanticConvention.MCP_PROMPT_DESCRIPTION = 'mcp.prompt.description';
382
+ // MCP metric names
383
+ SemanticConvention.MCP_REQUESTS = 'mcp.requests';
384
+ SemanticConvention.MCP_CLIENT_OPERATION_DURATION_METRIC = 'mcp.client.operation.duration';
385
+ SemanticConvention.MCP_REQUEST_SIZE = 'mcp.request.size';
386
+ SemanticConvention.MCP_RESPONSE_SIZE_METRIC = 'mcp.response.size';
387
+ SemanticConvention.MCP_TOOL_CALLS = 'mcp.tool.calls';
388
+ SemanticConvention.MCP_RESOURCE_READS = 'mcp.resource.reads';
389
+ SemanticConvention.MCP_PROMPT_GETS = 'mcp.prompt.gets';
390
+ SemanticConvention.MCP_TRANSPORT_USAGE = 'mcp.transport.usage';
391
+ SemanticConvention.MCP_ERRORS = 'mcp.errors';
392
+ SemanticConvention.MCP_OPERATION_SUCCESS_RATE = 'mcp.operation.success_rate';
393
+ // FastMCP framework attributes
394
+ SemanticConvention.MCP_FASTMCP_SERVER_DEBUG_MODE = 'mcp.fastmcp.server.debug_mode';
395
+ SemanticConvention.MCP_FASTMCP_SERVER_LOG_LEVEL = 'mcp.fastmcp.server.log_level';
396
+ SemanticConvention.MCP_FASTMCP_SERVER_HOST = 'mcp.fastmcp.server.host';
397
+ SemanticConvention.MCP_FASTMCP_SERVER_PORT = 'mcp.fastmcp.server.port';
398
+ SemanticConvention.MCP_FASTMCP_SERVER_TRANSPORT = 'mcp.fastmcp.server.transport';
399
+ SemanticConvention.MCP_FASTMCP_TOOL_ANNOTATIONS = 'mcp.fastmcp.tool.annotations';
400
+ SemanticConvention.MCP_FASTMCP_RESOURCE_MIME_TYPE = 'mcp.fastmcp.resource.mime_type';
401
+ SemanticConvention.MCP_FASTMCP_PROMPT_ARGUMENTS = 'mcp.fastmcp.prompt.arguments';
402
+ SemanticConvention.MCP_FASTMCP_TOOL_STRUCTURED_OUTPUT = 'mcp.fastmcp.tool.structured_output';
403
+ SemanticConvention.MCP_FASTMCP_SERVER_INSTRUCTIONS = 'mcp.fastmcp.server.instructions';
404
+ SemanticConvention.MCP_FASTMCP_SERVER_LIFESPAN = 'mcp.fastmcp.server.lifespan';
405
+ SemanticConvention.MCP_FASTMCP_MOUNT_PATH = 'mcp.fastmcp.mount_path';
406
+ SemanticConvention.MCP_FASTMCP_SSE_PATH = 'mcp.fastmcp.sse_path';
407
+ SemanticConvention.MCP_FASTMCP_MESSAGE_PATH = 'mcp.fastmcp.message_path';
408
+ SemanticConvention.MCP_FASTMCP_STREAMABLE_HTTP_PATH = 'mcp.fastmcp.streamable_http_path';
409
+ SemanticConvention.MCP_FASTMCP_JSON_RESPONSE = 'mcp.fastmcp.json_response';
410
+ SemanticConvention.MCP_FASTMCP_STATELESS_HTTP = 'mcp.fastmcp.stateless_http';
411
+ // MCP auth & security attributes
412
+ SemanticConvention.MCP_AUTH_CLIENT_ID = 'mcp.auth.client_id';
413
+ SemanticConvention.MCP_AUTH_SCOPES = 'mcp.auth.scopes';
414
+ SemanticConvention.MCP_AUTH_GRANT_TYPE = 'mcp.auth.grant_type';
415
+ SemanticConvention.MCP_AUTH_TOKEN_TYPE = 'mcp.auth.token_type';
416
+ SemanticConvention.MCP_AUTH_EXPIRES_AT = 'mcp.auth.expires_at';
417
+ SemanticConvention.MCP_AUTH_AUTHORIZATION_CODE = 'mcp.auth.authorization_code';
418
+ SemanticConvention.MCP_AUTH_REDIRECT_URI = 'mcp.auth.redirect_uri';
419
+ SemanticConvention.MCP_AUTH_STATE = 'mcp.auth.state';
420
+ SemanticConvention.MCP_AUTH_CODE_CHALLENGE = 'mcp.auth.code_challenge';
421
+ SemanticConvention.MCP_AUTH_RESOURCE_INDICATOR = 'mcp.auth.resource_indicator';
422
+ SemanticConvention.MCP_SECURITY_TRANSPORT_SECURITY = 'mcp.security.transport_security';
423
+ // MCP session attributes
424
+ SemanticConvention.MCP_SESSION_READ_TIMEOUT = 'mcp.session.read_timeout';
425
+ SemanticConvention.MCP_SESSION_REQUEST_TIMEOUT = 'mcp.session.request_timeout';
426
+ SemanticConvention.MCP_SESSION_SAMPLING_SUPPORT = 'mcp.session.sampling_support';
427
+ SemanticConvention.MCP_SESSION_ELICITATION_SUPPORT = 'mcp.session.elicitation_support';
428
+ SemanticConvention.MCP_SESSION_ROOTS_SUPPORT = 'mcp.session.roots_support';
429
+ SemanticConvention.MCP_SESSION_CLIENT_INFO_NAME = 'mcp.session.client_info.name';
430
+ SemanticConvention.MCP_SESSION_CLIENT_INFO_VERSION = 'mcp.session.client_info.version';
431
+ SemanticConvention.MCP_SESSION_STATELESS = 'mcp.session.stateless';
432
+ SemanticConvention.MCP_SESSION_RAISE_EXCEPTIONS = 'mcp.session.raise_exceptions';
433
+ SemanticConvention.MCP_SESSION_PROGRESS_TOKEN = 'mcp.session.progress_token';
434
+ // MCP websocket attributes
435
+ SemanticConvention.MCP_WEBSOCKET_URL = 'mcp.websocket.url';
436
+ SemanticConvention.MCP_WEBSOCKET_SUBPROTOCOL = 'mcp.websocket.subprotocol';
437
+ // MCP performance attributes
438
+ SemanticConvention.MCP_TOOL_EXECUTION_TIME = 'mcp.tool.execution_time';
439
+ SemanticConvention.MCP_RESOURCE_READ_TIME = 'mcp.resource.read_time';
440
+ SemanticConvention.MCP_PROMPT_RENDER_TIME = 'mcp.prompt.render_time';
441
+ SemanticConvention.MCP_TRANSPORT_CONNECTION_TIME = 'mcp.transport.connection_time';
442
+ // MCP progress attributes
443
+ SemanticConvention.MCP_PROGRESS_COMPLETION_PERCENTAGE = 'mcp.progress.completion_percentage';
444
+ SemanticConvention.MCP_PROGRESS_TOTAL = 'mcp.progress.total';
445
+ SemanticConvention.MCP_PROGRESS_MESSAGE = 'mcp.progress.message';
446
+ SemanticConvention.MCP_PROGRESS_CONTEXT_CURRENT = 'mcp.progress.context.current';
447
+ SemanticConvention.MCP_PROGRESS_CONTEXT_TOTAL = 'mcp.progress.context.total';
448
+ // MCP sampling attributes
449
+ SemanticConvention.MCP_SAMPLING_MAX_TOKENS = 'mcp.sampling.max_tokens';
450
+ SemanticConvention.MCP_SAMPLING_MESSAGES = 'mcp.sampling.messages';
451
+ // MCP elicitation attributes
452
+ SemanticConvention.MCP_ELICITATION_ACTION = 'mcp.elicitation.action';
453
+ // MCP manager attributes
454
+ SemanticConvention.MCP_MANAGER_TYPE = 'mcp.manager.type';
455
+ SemanticConvention.MCP_TOOL_MANAGER_TOOL_COUNT = 'mcp.tool_manager.tool_count';
456
+ SemanticConvention.MCP_TOOL_MANAGER_WARN_DUPLICATES = 'mcp.tool_manager.warn_duplicates';
457
+ SemanticConvention.MCP_RESOURCE_MANAGER_RESOURCE_COUNT = 'mcp.resource_manager.resource_count';
458
+ SemanticConvention.MCP_RESOURCE_MANAGER_WARN_DUPLICATES = 'mcp.resource_manager.warn_duplicates';
459
+ SemanticConvention.MCP_PROMPT_MANAGER_PROMPT_COUNT = 'mcp.prompt_manager.prompt_count';
460
+ SemanticConvention.MCP_PROMPT_MANAGER_WARN_DUPLICATES = 'mcp.prompt_manager.warn_duplicates';
461
+ // MCP memory attributes
462
+ SemanticConvention.MCP_MEMORY_TRANSPORT_TYPE = 'mcp.memory.transport_type';
463
+ SemanticConvention.MCP_MEMORY_CLIENT_SERVER_SESSION = 'mcp.memory.client_server_session';
464
+ // MCP completion attributes
465
+ SemanticConvention.MCP_COMPLETION_REF_TYPE = 'mcp.completion.ref_type';
466
+ SemanticConvention.MCP_COMPLETION_ARGUMENT_NAME = 'mcp.completion.argument_name';
467
+ SemanticConvention.MCP_COMPLETION_ARGUMENT_VALUE = 'mcp.completion.argument_value';
468
+ SemanticConvention.MCP_COMPLETION_CONTEXT_ARGUMENTS = 'mcp.completion.context_arguments';
469
+ SemanticConvention.MCP_COMPLETION_VALUES = 'mcp.completion.values';
470
+ SemanticConvention.MCP_COMPLETION_TOTAL = 'mcp.completion.total';
471
+ SemanticConvention.MCP_COMPLETION_HAS_MORE = 'mcp.completion.has_more';
472
+ // MCP logging and notification attributes
473
+ SemanticConvention.MCP_LOGGING_LEVEL_SET = 'mcp.logging.level_set';
474
+ SemanticConvention.MCP_NOTIFICATION_TYPE = 'mcp.notification.type';
475
+ SemanticConvention.MCP_NOTIFICATION_RELATED_REQUEST_ID = 'mcp.notification.related_request_id';
476
+ SemanticConvention.MCP_PING_RESPONSE_TIME = 'mcp.ping.response_time';
477
+ SemanticConvention.GEN_AI_OPERATION_TYPE_CREATE_AGENT = 'create_agent';
478
+ // Graph attributes (LangGraph)
479
+ SemanticConvention.GEN_AI_GRAPH_NODES = 'gen_ai.graph.nodes';
480
+ SemanticConvention.GEN_AI_GRAPH_NODE_COUNT = 'gen_ai.graph.node_count';
481
+ SemanticConvention.GEN_AI_GRAPH_EDGES = 'gen_ai.graph.edges';
482
+ SemanticConvention.GEN_AI_GRAPH_EDGE_COUNT = 'gen_ai.graph.edge_count';
483
+ SemanticConvention.GEN_AI_GRAPH_EXECUTED_NODES = 'gen_ai.graph.executed_nodes';
484
+ SemanticConvention.GEN_AI_GRAPH_STATUS = 'gen_ai.graph.status';
485
+ SemanticConvention.GEN_AI_GRAPH_MESSAGE_COUNT = 'gen_ai.graph.message_count';
486
+ SemanticConvention.GEN_AI_GRAPH_TOTAL_CHUNKS = 'gen_ai.graph.total_chunks';
487
+ // Execution attributes (LangGraph)
488
+ SemanticConvention.GEN_AI_EXECUTION_MODE = 'gen_ai.execution.mode';
489
+ SemanticConvention.GEN_AI_CHECKPOINT_ID = 'gen_ai.checkpoint.id';
490
+ // Vector DB
491
+ SemanticConvention.DB_REQUESTS = 'db.total.requests';
492
+ SemanticConvention.DB_SYSTEM = 'db.system';
493
+ SemanticConvention.DB_SYSTEM_NAME = 'db.system.name';
494
+ SemanticConvention.DB_SYSTEM_CHROMA = 'chroma';
495
+ SemanticConvention.DB_SYSTEM_PINECONE = 'pinecone';
496
+ SemanticConvention.DB_SYSTEM_QDRANT = 'qdrant';
497
+ SemanticConvention.DB_SYSTEM_MILVUS = 'milvus';
498
+ SemanticConvention.DB_SYSTEM_ASTRA = 'astra';
499
+ SemanticConvention.DB_COLLECTION_NAME = 'db.collection.name';
500
+ SemanticConvention.DB_OPERATION = 'db.operation';
501
+ SemanticConvention.DB_OPERATION_NAME = 'db.operation.name';
502
+ SemanticConvention.DB_OPERATION_CREATE_INDEX = 'create_index';
503
+ SemanticConvention.DB_OPERATION_INSERT = 'INSERT';
504
+ SemanticConvention.DB_OPERATION_QUERY = 'QUERY';
505
+ SemanticConvention.DB_OPERATION_DELETE = 'DELETE';
506
+ SemanticConvention.DB_OPERATION_UPDATE = 'UPDATE';
507
+ SemanticConvention.DB_OPERATION_UPSERT = 'UPSERT';
508
+ SemanticConvention.DB_OPERATION_GET = 'GET';
509
+ SemanticConvention.DB_OPERATION_ADD = 'ADD';
510
+ SemanticConvention.DB_OPERATION_PEEK = 'PEEK';
511
+ SemanticConvention.DB_OPERATION_SEARCH = 'SEARCH';
512
+ SemanticConvention.DB_OPERATION_FETCH = 'FETCH';
513
+ SemanticConvention.DB_OPERATION_CREATE_COLLECTION = 'create_collection';
514
+ SemanticConvention.DB_OPERATION_DELETE_COLLECTION = 'delete_collection';
515
+ SemanticConvention.DB_OPERATION_SELECT = 'SELECT';
516
+ SemanticConvention.DB_OPERATION_REPLACE = 'findAndModify';
517
+ SemanticConvention.DB_OPERATION_FIND_AND_DELETE = 'findAndDelete';
518
+ SemanticConvention.DB_ID_COUNT = 'db.ids_count';
519
+ SemanticConvention.DB_VECTOR_COUNT = 'db.vector.count';
520
+ SemanticConvention.DB_METADATA_COUNT = 'db.metadatas_count';
521
+ SemanticConvention.DB_DOCUMENTS_COUNT = 'db.documents_count';
522
+ SemanticConvention.DB_QUERY_LIMIT = 'db.limit';
523
+ SemanticConvention.DB_VECTOR_QUERY_TOP_K = 'db.vector.query.top_k';
524
+ SemanticConvention.DB_OFFSET = 'db.offset';
525
+ SemanticConvention.DB_WHERE_DOCUMENT = 'db.where_document';
526
+ SemanticConvention.DB_FILTER = 'db.filter';
527
+ SemanticConvention.DB_QUERY_TEXT = 'db.query.text';
528
+ SemanticConvention.DB_QUERY_SUMMARY = 'db.query.summary';
529
+ SemanticConvention.DB_STATEMENT = 'db.statement';
530
+ SemanticConvention.DB_N_RESULTS = 'db.n_results';
531
+ SemanticConvention.DB_RESPONSE_RETURNED_ROWS = 'db.response.returned_rows';
532
+ SemanticConvention.DB_DELETE_ALL = 'db.delete_all';
533
+ SemanticConvention.DB_INDEX_NAME = 'db.create_index.name';
534
+ SemanticConvention.DB_INDEX_DIMENSION = 'db.create_index.dimensions';
535
+ SemanticConvention.DB_INDEX_METRIC = 'db.create_index.metric';
536
+ SemanticConvention.DB_INDEX_SPEC = 'db.create_index.spec';
537
+ SemanticConvention.DB_NAMESPACE = 'db.query.namespace';
538
+ SemanticConvention.DB_UPDATE_METADATA = 'db.update.metadata';
539
+ SemanticConvention.DB_UPDATE_VALUES = 'db.update.values';
540
+ SemanticConvention.DB_UPDATE_ID = 'db.update.id';
541
+ SemanticConvention.DB_CLIENT_OPERATION_DURATION = 'db.client.operation.duration';
542
+ // Vector DB extras (aligned with Python SDK / OTel)
543
+ SemanticConvention.DB_QUERY_PARAMETER = 'db.query.parameter';
544
+ SemanticConvention.DB_SDK_VERSION = 'db.sdk.version';
545
+ SemanticConvention.DB_OPERATION_ID = 'db.operation.id';
546
+ SemanticConvention.DB_OPERATION_STATUS = 'db.operation.status';
547
+ SemanticConvention.DB_OPERATION_COST = 'db.operation.cost';
548
+ SemanticConvention.DB_INDEX_NAME_ALT = 'db.index.name';
549
+ SemanticConvention.DB_COLLECTION_DIMENSION = 'db.collection.dimension';
550
+ SemanticConvention.DB_VECTOR_QUERY_FILTER = 'db.vector.query.filter';
551
+ SemanticConvention.DB_DELETE_ID = 'db.delete.id';
552
+ SemanticConvention.DB_METADATA = 'db.metadata';
553
+ SemanticConvention.DB_PAYLOAD_COUNT = 'db.payload_count';
554
+ SemanticConvention.DB_WITH_PAYLOAD = 'db.with_payload';
555
+ SemanticConvention.DB_OUTPUT_FIELDS = 'db.output_fields';
556
+ // ----- PostgreSQL (pg) instrumentation -----
557
+ // Mirrors Python SDK psycopg instrumentation (sdk/python/src/shield360/instrumentation/psycopg).
558
+ SemanticConvention.DB_SYSTEM_POSTGRESQL = 'postgresql';
559
+ // OTel database namespace (database name). Python psycopg uses "db.namespace";
560
+ // the existing TS DB_NAMESPACE = "db.query.namespace" is a vector-DB attribute,
561
+ // so a dedicated constant keeps parity with the Python attribute value.
562
+ SemanticConvention.DB_NAMESPACE_POSTGRESQL = 'db.namespace';
563
+ // SQL operation names (statement verbs) — values mirror Python semcov.
564
+ SemanticConvention.DB_OPERATION_COMMIT = 'COMMIT';
565
+ SemanticConvention.DB_OPERATION_ROLLBACK = 'ROLLBACK';
566
+ SemanticConvention.DB_OPERATION_COPY = 'COPY';
567
+ SemanticConvention.DB_OPERATION_CREATE = 'CREATE';
568
+ SemanticConvention.DB_OPERATION_ALTER = 'ALTER';
569
+ SemanticConvention.DB_OPERATION_DROP = 'DROP';
570
+ SemanticConvention.DB_OPERATION_TRUNCATE = 'TRUNCATE';
571
+ SemanticConvention.DB_OPERATION_CALL = 'CALL';
572
+ // pgvector similarity metric (set when a similarity operator is present).
573
+ SemanticConvention.DB_SEARCH_SIMILARITY_METRIC = 'db.search.similarity_metric';
574
+ // PostgreSQL-specific extras (mirror Python semcov).
575
+ SemanticConvention.DB_POSTGRESQL_ROWS_AFFECTED = 'db.postgresql.rows_affected';
576
+ SemanticConvention.DB_POSTGRESQL_PLAN = 'db.postgresql.plan';
577
+ // Batch size attribute used by executemany-style batched queries.
578
+ SemanticConvention.DB_BATCH_SIZE = 'db.batch.size';
579
+ // ----- Mem0 (memory layer) instrumentation -----
580
+ // Session scope (mirrors Python semcov; stamped on memory spans when present)
581
+ SemanticConvention.GEN_AI_USER_ID = 'gen_ai.user.id';
582
+ SemanticConvention.GEN_AI_RUN_ID = 'gen_ai.run.id';
583
+ // Memory operation attributes
584
+ SemanticConvention.GEN_AI_MEMORY_TYPE = 'gen_ai.memory.type';
585
+ SemanticConvention.GEN_AI_MEMORY_METADATA = 'gen_ai.memory.metadata';
586
+ SemanticConvention.GEN_AI_MEMORY_INFER = 'gen_ai.memory.infer';
587
+ SemanticConvention.GEN_AI_MEMORY_COUNT = 'gen_ai.memory.count';
588
+ SemanticConvention.GEN_AI_MEMORY_SEARCH_QUERY = 'gen_ai.memory.search.query';
589
+ SemanticConvention.GEN_AI_MEMORY_SEARCH_LIMIT = 'gen_ai.memory.search.limit';
590
+ SemanticConvention.GEN_AI_MEMORY_SEARCH_THRESHOLD = 'gen_ai.memory.search.threshold';
591
+ SemanticConvention.GEN_AI_MEMORY_OPERATION_RESULT_COUNT = 'gen_ai.memory.operation.result_count';
592
+ // ----- Guard System -----
593
+ SemanticConvention.GUARD_REQUESTS = 'guard.requests';
594
+ SemanticConvention.GUARD_VERDICT = 'guard.verdict';
595
+ SemanticConvention.GUARD_SCORE = 'guard.score';
596
+ SemanticConvention.GUARD_CLASSIFICATION = 'guard.classification';
597
+ SemanticConvention.GUARD_VALIDATOR = 'guard.validator';
598
+ SemanticConvention.GUARD_EXPLANATION = 'guard.explanation';
599
+ // Guard events (new guard system)
600
+ SemanticConvention.GUARD_EVALUATION_EVENT = 'guard.evaluation';
601
+ SemanticConvention.GUARD_NAME = 'guard.name';
602
+ SemanticConvention.GUARD_PHASE = 'guard.phase';
603
+ SemanticConvention.GUARD_ACTION = 'guard.action';
604
+ SemanticConvention.GUARD_LATENCY_MS = 'guard.latency_ms';
605
+ SemanticConvention.GUARD_DENIED = 'guard.denied';
606
+ SemanticConvention.GUARD_REQUESTS_COUNTER = 'guard.requests';
607
+ // GenAI Evaluation Event (OTel Semantic Convention)
608
+ SemanticConvention.GEN_AI_EVALUATION_RESULT = 'gen_ai.evaluation.result';
609
+ SemanticConvention.GEN_AI_EVALUATION_NAME = 'gen_ai.evaluation.name';
610
+ SemanticConvention.GEN_AI_EVALUATION_SCORE_VALUE = 'gen_ai.evaluation.score.value';
611
+ SemanticConvention.GEN_AI_EVALUATION_SCORE_LABEL = 'gen_ai.evaluation.score.label';
612
+ SemanticConvention.GEN_AI_EVALUATION_EXPLANATION = 'gen_ai.evaluation.explanation';
613
+ SemanticConvention.SHIELD360_SCORE_IDEMPOTENCY_KEY = 'shield360.score.idempotency_key';
614
+ // ----- GPU (matches Python semcov) -----
615
+ SemanticConvention.GPU_INDEX = 'gpu.index';
616
+ SemanticConvention.GPU_UUID = 'gpu.uuid';
617
+ SemanticConvention.GPU_NAME = 'gpu.name';
618
+ SemanticConvention.GPU_UTILIZATION = 'gpu.utilization';
619
+ SemanticConvention.GPU_UTILIZATION_ENC = 'gpu.enc.utilization';
620
+ SemanticConvention.GPU_UTILIZATION_DEC = 'gpu.dec.utilization';
621
+ SemanticConvention.GPU_TEMPERATURE = 'gpu.temperature';
622
+ SemanticConvention.GPU_FAN_SPEED = 'gpu.fan_speed';
623
+ SemanticConvention.GPU_MEMORY_AVAILABLE = 'gpu.memory.available';
624
+ SemanticConvention.GPU_MEMORY_TOTAL = 'gpu.memory.total';
625
+ SemanticConvention.GPU_MEMORY_USED = 'gpu.memory.used';
626
+ SemanticConvention.GPU_MEMORY_FREE = 'gpu.memory.free';
627
+ SemanticConvention.GPU_POWER_DRAW = 'gpu.power.draw';
628
+ SemanticConvention.GPU_POWER_LIMIT = 'gpu.power.limit';
629
+ exports.default = SemanticConvention;
630
+ //# sourceMappingURL=semantic-convention.js.map