openlit 1.13.0 → 1.14.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 (348) hide show
  1. package/README.md +34 -1
  2. package/dist/__tests__/manual-trace.test.js +118 -0
  3. package/dist/__tests__/manual-trace.test.js.map +1 -0
  4. package/dist/__tests__/register.test.js +90 -0
  5. package/dist/__tests__/register.test.js.map +1 -0
  6. package/dist/config.d.ts +7 -1
  7. package/dist/config.js +3 -1
  8. package/dist/config.js.map +1 -1
  9. package/dist/evals/__tests__/offline.test.js +418 -0
  10. package/dist/evals/__tests__/offline.test.js.map +1 -0
  11. package/dist/evals/index.d.ts +2 -5
  12. package/dist/evals/index.js +12 -26
  13. package/dist/evals/index.js.map +1 -1
  14. package/dist/evals/offline.d.ts +6 -0
  15. package/dist/evals/offline.js +347 -0
  16. package/dist/evals/offline.js.map +1 -0
  17. package/dist/evals/types.d.ts +69 -18
  18. package/dist/evals/types.js +20 -0
  19. package/dist/evals/types.js.map +1 -1
  20. package/dist/guard/__tests__/integration.test.js +178 -0
  21. package/dist/guard/__tests__/integration.test.js.map +1 -0
  22. package/dist/guard/__tests__/pii.test.js +109 -0
  23. package/dist/guard/__tests__/pii.test.js.map +1 -0
  24. package/dist/guard/__tests__/pipeline.test.js +162 -0
  25. package/dist/guard/__tests__/pipeline.test.js.map +1 -0
  26. package/dist/guard/__tests__/prompt-injection.test.js +92 -0
  27. package/dist/guard/__tests__/prompt-injection.test.js.map +1 -0
  28. package/dist/guard/base.d.ts +75 -14
  29. package/dist/guard/base.js +130 -53
  30. package/dist/guard/base.js.map +1 -1
  31. package/dist/guard/custom.d.ts +19 -0
  32. package/dist/guard/custom.js +46 -0
  33. package/dist/guard/custom.js.map +1 -0
  34. package/dist/guard/index.d.ts +24 -5
  35. package/dist/guard/index.js +39 -21
  36. package/dist/guard/index.js.map +1 -1
  37. package/dist/guard/integration.d.ts +32 -0
  38. package/dist/guard/integration.js +328 -0
  39. package/dist/guard/integration.js.map +1 -0
  40. package/dist/guard/moderation.d.ts +18 -0
  41. package/dist/guard/moderation.js +61 -0
  42. package/dist/guard/moderation.js.map +1 -0
  43. package/dist/guard/pii.d.ts +17 -0
  44. package/dist/guard/pii.js +94 -0
  45. package/dist/guard/pii.js.map +1 -0
  46. package/dist/guard/pipeline.d.ts +18 -0
  47. package/dist/guard/pipeline.js +96 -0
  48. package/dist/guard/pipeline.js.map +1 -0
  49. package/dist/guard/prompt-injection.d.ts +20 -6
  50. package/dist/guard/prompt-injection.js +59 -68
  51. package/dist/guard/prompt-injection.js.map +1 -1
  52. package/dist/guard/schema.d.ts +20 -0
  53. package/dist/guard/schema.js +99 -0
  54. package/dist/guard/schema.js.map +1 -0
  55. package/dist/guard/sensitive-topic.d.ts +22 -6
  56. package/dist/guard/sensitive-topic.js +78 -64
  57. package/dist/guard/sensitive-topic.js.map +1 -1
  58. package/dist/guard/topic-restriction.d.ts +21 -6
  59. package/dist/guard/topic-restriction.js +43 -64
  60. package/dist/guard/topic-restriction.js.map +1 -1
  61. package/dist/helpers.d.ts +133 -2
  62. package/dist/helpers.js +415 -5
  63. package/dist/helpers.js.map +1 -1
  64. package/dist/index.d.ts +54 -30
  65. package/dist/index.js +104 -22
  66. package/dist/index.js.map +1 -1
  67. package/dist/instrumentation/__tests__/ai21-rag-trace-comparison.test.d.ts +13 -0
  68. package/dist/instrumentation/__tests__/ai21-rag-trace-comparison.test.js +176 -0
  69. package/dist/instrumentation/__tests__/ai21-rag-trace-comparison.test.js.map +1 -0
  70. package/dist/instrumentation/__tests__/ai21-trace-comparison.test.d.ts +10 -0
  71. package/dist/instrumentation/__tests__/ai21-trace-comparison.test.js +203 -0
  72. package/dist/instrumentation/__tests__/ai21-trace-comparison.test.js.map +1 -0
  73. package/dist/instrumentation/__tests__/assemblyai-wrapper.test.js +262 -0
  74. package/dist/instrumentation/__tests__/assemblyai-wrapper.test.js.map +1 -0
  75. package/dist/instrumentation/__tests__/astra-trace-comparison.test.d.ts +7 -0
  76. package/dist/instrumentation/__tests__/astra-trace-comparison.test.js +160 -0
  77. package/dist/instrumentation/__tests__/astra-trace-comparison.test.js.map +1 -0
  78. package/dist/instrumentation/__tests__/browser-use-wrapper.test.js +284 -0
  79. package/dist/instrumentation/__tests__/browser-use-wrapper.test.js.map +1 -0
  80. package/dist/instrumentation/__tests__/cache-pricing.test.d.ts +12 -0
  81. package/dist/instrumentation/__tests__/cache-pricing.test.js +95 -0
  82. package/dist/instrumentation/__tests__/cache-pricing.test.js.map +1 -0
  83. package/dist/instrumentation/__tests__/elevenlabs-wrapper.test.d.ts +1 -0
  84. package/dist/instrumentation/__tests__/elevenlabs-wrapper.test.js +282 -0
  85. package/dist/instrumentation/__tests__/elevenlabs-wrapper.test.js.map +1 -0
  86. package/dist/instrumentation/__tests__/firecrawl-wrapper.test.d.ts +1 -0
  87. package/dist/instrumentation/__tests__/firecrawl-wrapper.test.js +238 -0
  88. package/dist/instrumentation/__tests__/firecrawl-wrapper.test.js.map +1 -0
  89. package/dist/instrumentation/__tests__/gpu-collector.test.d.ts +1 -0
  90. package/dist/instrumentation/__tests__/gpu-collector.test.js +247 -0
  91. package/dist/instrumentation/__tests__/gpu-collector.test.js.map +1 -0
  92. package/dist/instrumentation/__tests__/gradient-trace-comparison.test.d.ts +11 -0
  93. package/dist/instrumentation/__tests__/gradient-trace-comparison.test.js +391 -0
  94. package/dist/instrumentation/__tests__/gradient-trace-comparison.test.js.map +1 -0
  95. package/dist/instrumentation/__tests__/groq-trace-comparison.test.js +150 -0
  96. package/dist/instrumentation/__tests__/groq-trace-comparison.test.js.map +1 -1
  97. package/dist/instrumentation/__tests__/helpers-genai.test.d.ts +14 -0
  98. package/dist/instrumentation/__tests__/helpers-genai.test.js +347 -0
  99. package/dist/instrumentation/__tests__/helpers-genai.test.js.map +1 -0
  100. package/dist/instrumentation/__tests__/langchain-role-map.test.d.ts +1 -0
  101. package/dist/instrumentation/__tests__/langchain-role-map.test.js +19 -0
  102. package/dist/instrumentation/__tests__/langchain-role-map.test.js.map +1 -0
  103. package/dist/instrumentation/__tests__/mem0-trace-comparison.test.d.ts +13 -0
  104. package/dist/instrumentation/__tests__/mem0-trace-comparison.test.js +208 -0
  105. package/dist/instrumentation/__tests__/mem0-trace-comparison.test.js.map +1 -0
  106. package/dist/instrumentation/__tests__/pg-trace-comparison.test.d.ts +21 -0
  107. package/dist/instrumentation/__tests__/pg-trace-comparison.test.js +455 -0
  108. package/dist/instrumentation/__tests__/pg-trace-comparison.test.js.map +1 -0
  109. package/dist/instrumentation/__tests__/transformers-trace-comparison.test.d.ts +11 -0
  110. package/dist/instrumentation/__tests__/transformers-trace-comparison.test.js +214 -0
  111. package/dist/instrumentation/__tests__/transformers-trace-comparison.test.js.map +1 -0
  112. package/dist/instrumentation/__tests__/vertexai-trace-comparison.test.d.ts +6 -0
  113. package/dist/instrumentation/__tests__/vertexai-trace-comparison.test.js +409 -0
  114. package/dist/instrumentation/__tests__/vertexai-trace-comparison.test.js.map +1 -0
  115. package/dist/instrumentation/__tests__/vllm-trace-comparison.test.d.ts +1 -0
  116. package/dist/instrumentation/__tests__/vllm-trace-comparison.test.js +519 -0
  117. package/dist/instrumentation/__tests__/vllm-trace-comparison.test.js.map +1 -0
  118. package/dist/instrumentation/ai21/index.d.ts +11 -0
  119. package/dist/instrumentation/ai21/index.js +67 -0
  120. package/dist/instrumentation/ai21/index.js.map +1 -0
  121. package/dist/instrumentation/ai21/wrapper.d.ts +54 -0
  122. package/dist/instrumentation/ai21/wrapper.js +511 -0
  123. package/dist/instrumentation/ai21/wrapper.js.map +1 -0
  124. package/dist/instrumentation/anthropic/wrapper.js +56 -2
  125. package/dist/instrumentation/anthropic/wrapper.js.map +1 -1
  126. package/dist/instrumentation/assemblyai/index.d.ts +12 -0
  127. package/dist/instrumentation/assemblyai/index.js +91 -0
  128. package/dist/instrumentation/assemblyai/index.js.map +1 -0
  129. package/dist/instrumentation/assemblyai/wrapper.d.ts +35 -0
  130. package/dist/instrumentation/assemblyai/wrapper.js +233 -0
  131. package/dist/instrumentation/assemblyai/wrapper.js.map +1 -0
  132. package/dist/instrumentation/astra/index.d.ts +11 -0
  133. package/dist/instrumentation/astra/index.js +87 -0
  134. package/dist/instrumentation/astra/index.js.map +1 -0
  135. package/dist/instrumentation/astra/wrapper.d.ts +39 -0
  136. package/dist/instrumentation/astra/wrapper.js +349 -0
  137. package/dist/instrumentation/astra/wrapper.js.map +1 -0
  138. package/dist/instrumentation/azure-ai-inference/wrapper.d.ts +13 -0
  139. package/dist/instrumentation/azure-ai-inference/wrapper.js +60 -1
  140. package/dist/instrumentation/azure-ai-inference/wrapper.js.map +1 -1
  141. package/dist/instrumentation/bedrock/wrapper.d.ts +13 -0
  142. package/dist/instrumentation/bedrock/wrapper.js +78 -2
  143. package/dist/instrumentation/bedrock/wrapper.js.map +1 -1
  144. package/dist/instrumentation/browser-use/index.d.ts +11 -0
  145. package/dist/instrumentation/browser-use/index.js +98 -0
  146. package/dist/instrumentation/browser-use/index.js.map +1 -0
  147. package/dist/instrumentation/browser-use/wrapper.d.ts +12 -0
  148. package/dist/instrumentation/browser-use/wrapper.js +706 -0
  149. package/dist/instrumentation/browser-use/wrapper.js.map +1 -0
  150. package/dist/instrumentation/claude-agent-sdk/wrapper.js +90 -4
  151. package/dist/instrumentation/claude-agent-sdk/wrapper.js.map +1 -1
  152. package/dist/instrumentation/cohere/wrapper.d.ts +13 -0
  153. package/dist/instrumentation/cohere/wrapper.js +59 -0
  154. package/dist/instrumentation/cohere/wrapper.js.map +1 -1
  155. package/dist/instrumentation/cursor-sdk/wrapper.js +111 -15
  156. package/dist/instrumentation/cursor-sdk/wrapper.js.map +1 -1
  157. package/dist/instrumentation/elevenlabs/index.d.ts +12 -0
  158. package/dist/instrumentation/elevenlabs/index.js +92 -0
  159. package/dist/instrumentation/elevenlabs/index.js.map +1 -0
  160. package/dist/instrumentation/elevenlabs/wrapper.d.ts +34 -0
  161. package/dist/instrumentation/elevenlabs/wrapper.js +280 -0
  162. package/dist/instrumentation/elevenlabs/wrapper.js.map +1 -0
  163. package/dist/instrumentation/firecrawl/index.d.ts +13 -0
  164. package/dist/instrumentation/firecrawl/index.js +115 -0
  165. package/dist/instrumentation/firecrawl/index.js.map +1 -0
  166. package/dist/instrumentation/firecrawl/wrapper.d.ts +22 -0
  167. package/dist/instrumentation/firecrawl/wrapper.js +378 -0
  168. package/dist/instrumentation/firecrawl/wrapper.js.map +1 -0
  169. package/dist/instrumentation/google-ai/wrapper.d.ts +13 -0
  170. package/dist/instrumentation/google-ai/wrapper.js +85 -1
  171. package/dist/instrumentation/google-ai/wrapper.js.map +1 -1
  172. package/dist/instrumentation/gpu/index.d.ts +38 -0
  173. package/dist/instrumentation/gpu/index.js +233 -0
  174. package/dist/instrumentation/gpu/index.js.map +1 -0
  175. package/dist/instrumentation/gradient/index.d.ts +12 -0
  176. package/dist/instrumentation/gradient/index.js +74 -0
  177. package/dist/instrumentation/gradient/index.js.map +1 -0
  178. package/dist/instrumentation/gradient/utils.d.ts +14 -0
  179. package/dist/instrumentation/gradient/utils.js +119 -0
  180. package/dist/instrumentation/gradient/utils.js.map +1 -0
  181. package/dist/instrumentation/gradient/wrapper.d.ts +76 -0
  182. package/dist/instrumentation/gradient/wrapper.js +584 -0
  183. package/dist/instrumentation/gradient/wrapper.js.map +1 -0
  184. package/dist/instrumentation/groq/wrapper.js +42 -0
  185. package/dist/instrumentation/groq/wrapper.js.map +1 -1
  186. package/dist/instrumentation/huggingface/wrapper.d.ts +13 -0
  187. package/dist/instrumentation/huggingface/wrapper.js +66 -0
  188. package/dist/instrumentation/huggingface/wrapper.js.map +1 -1
  189. package/dist/instrumentation/index.js +26 -0
  190. package/dist/instrumentation/index.js.map +1 -1
  191. package/dist/instrumentation/langchain/wrapper.js +5 -8
  192. package/dist/instrumentation/langchain/wrapper.js.map +1 -1
  193. package/dist/instrumentation/langgraph/wrapper.js +12 -11
  194. package/dist/instrumentation/langgraph/wrapper.js.map +1 -1
  195. package/dist/instrumentation/llamaindex/wrapper.d.ts +14 -1
  196. package/dist/instrumentation/llamaindex/wrapper.js +68 -0
  197. package/dist/instrumentation/llamaindex/wrapper.js.map +1 -1
  198. package/dist/instrumentation/mcp/index.d.ts +20 -0
  199. package/dist/instrumentation/mcp/index.js +282 -0
  200. package/dist/instrumentation/mcp/index.js.map +1 -0
  201. package/dist/instrumentation/mcp/wrapper.d.ts +72 -0
  202. package/dist/instrumentation/mcp/wrapper.js +571 -0
  203. package/dist/instrumentation/mcp/wrapper.js.map +1 -0
  204. package/dist/instrumentation/mem0/index.d.ts +17 -0
  205. package/dist/instrumentation/mem0/index.js +113 -0
  206. package/dist/instrumentation/mem0/index.js.map +1 -0
  207. package/dist/instrumentation/mem0/wrapper.d.ts +37 -0
  208. package/dist/instrumentation/mem0/wrapper.js +298 -0
  209. package/dist/instrumentation/mem0/wrapper.js.map +1 -0
  210. package/dist/instrumentation/mistral/wrapper.d.ts +13 -0
  211. package/dist/instrumentation/mistral/wrapper.js +60 -1
  212. package/dist/instrumentation/mistral/wrapper.js.map +1 -1
  213. package/dist/instrumentation/ollama/wrapper.d.ts +13 -0
  214. package/dist/instrumentation/ollama/wrapper.js +67 -1
  215. package/dist/instrumentation/ollama/wrapper.js.map +1 -1
  216. package/dist/instrumentation/openai/wrapper.d.ts +13 -0
  217. package/dist/instrumentation/openai/wrapper.js +89 -3
  218. package/dist/instrumentation/openai/wrapper.js.map +1 -1
  219. package/dist/instrumentation/pg/index.d.ts +20 -0
  220. package/dist/instrumentation/pg/index.js +74 -0
  221. package/dist/instrumentation/pg/index.js.map +1 -0
  222. package/dist/instrumentation/pg/wrapper.d.ts +66 -0
  223. package/dist/instrumentation/pg/wrapper.js +441 -0
  224. package/dist/instrumentation/pg/wrapper.js.map +1 -0
  225. package/dist/instrumentation/replicate/wrapper.d.ts +13 -0
  226. package/dist/instrumentation/replicate/wrapper.js +61 -0
  227. package/dist/instrumentation/replicate/wrapper.js.map +1 -1
  228. package/dist/instrumentation/strands/processor.d.ts +6 -0
  229. package/dist/instrumentation/strands/processor.js +73 -3
  230. package/dist/instrumentation/strands/processor.js.map +1 -1
  231. package/dist/instrumentation/strands/utils.d.ts +2 -2
  232. package/dist/instrumentation/strands/utils.js +15 -2
  233. package/dist/instrumentation/strands/utils.js.map +1 -1
  234. package/dist/instrumentation/together/wrapper.d.ts +13 -0
  235. package/dist/instrumentation/together/wrapper.js +59 -1
  236. package/dist/instrumentation/together/wrapper.js.map +1 -1
  237. package/dist/instrumentation/transformers/index.d.ts +35 -0
  238. package/dist/instrumentation/transformers/index.js +119 -0
  239. package/dist/instrumentation/transformers/index.js.map +1 -0
  240. package/dist/instrumentation/transformers/wrapper.d.ts +49 -0
  241. package/dist/instrumentation/transformers/wrapper.js +472 -0
  242. package/dist/instrumentation/transformers/wrapper.js.map +1 -0
  243. package/dist/instrumentation/vercel-ai/wrapper.d.ts +13 -0
  244. package/dist/instrumentation/vercel-ai/wrapper.js +106 -1
  245. package/dist/instrumentation/vercel-ai/wrapper.js.map +1 -1
  246. package/dist/instrumentation/vertexai/index.d.ts +11 -0
  247. package/dist/instrumentation/vertexai/index.js +70 -0
  248. package/dist/instrumentation/vertexai/index.js.map +1 -0
  249. package/dist/instrumentation/vertexai/wrapper.d.ts +67 -0
  250. package/dist/instrumentation/vertexai/wrapper.js +529 -0
  251. package/dist/instrumentation/vertexai/wrapper.js.map +1 -0
  252. package/dist/instrumentation/vllm/index.d.ts +13 -0
  253. package/dist/instrumentation/vllm/index.js +67 -0
  254. package/dist/instrumentation/vllm/index.js.map +1 -0
  255. package/dist/instrumentation/vllm/wrapper.d.ts +60 -0
  256. package/dist/instrumentation/vllm/wrapper.js +482 -0
  257. package/dist/instrumentation/vllm/wrapper.js.map +1 -0
  258. package/dist/llm/index.d.ts +9 -2
  259. package/dist/llm/index.js.map +1 -1
  260. package/dist/manual-trace.d.ts +40 -0
  261. package/dist/manual-trace.js +103 -0
  262. package/dist/manual-trace.js.map +1 -0
  263. package/dist/otel/metrics.d.ts +11 -0
  264. package/dist/otel/metrics.js +48 -0
  265. package/dist/otel/metrics.js.map +1 -1
  266. package/dist/register.d.ts +4 -0
  267. package/dist/register.js +52 -0
  268. package/dist/register.js.map +1 -0
  269. package/dist/score/__tests__/score.test.d.ts +1 -0
  270. package/dist/score/__tests__/score.test.js +143 -0
  271. package/dist/score/__tests__/score.test.js.map +1 -0
  272. package/dist/score/index.d.ts +2 -0
  273. package/dist/score/index.js +6 -0
  274. package/dist/score/index.js.map +1 -0
  275. package/dist/score/score.d.ts +15 -0
  276. package/dist/score/score.js +135 -0
  277. package/dist/score/score.js.map +1 -0
  278. package/dist/semantic-convention.d.ts +273 -0
  279. package/dist/semantic-convention.js +317 -0
  280. package/dist/semantic-convention.js.map +1 -1
  281. package/dist/types.d.ts +15 -1
  282. package/package.json +18 -1
  283. package/dist/evals/__tests__/anthropic.test.js +0 -9
  284. package/dist/evals/__tests__/anthropic.test.js.map +0 -1
  285. package/dist/evals/__tests__/base.test.js +0 -37
  286. package/dist/evals/__tests__/base.test.js.map +0 -1
  287. package/dist/evals/__tests__/core.test.js +0 -33
  288. package/dist/evals/__tests__/core.test.js.map +0 -1
  289. package/dist/evals/__tests__/metrics.test.js +0 -59
  290. package/dist/evals/__tests__/metrics.test.js.map +0 -1
  291. package/dist/evals/__tests__/openai.test.js +0 -9
  292. package/dist/evals/__tests__/openai.test.js.map +0 -1
  293. package/dist/evals/__tests__/providers.test.js +0 -14
  294. package/dist/evals/__tests__/providers.test.js.map +0 -1
  295. package/dist/evals/__tests__/utils.test.js +0 -46
  296. package/dist/evals/__tests__/utils.test.js.map +0 -1
  297. package/dist/evals/all.d.ts +0 -4
  298. package/dist/evals/all.js +0 -35
  299. package/dist/evals/all.js.map +0 -1
  300. package/dist/evals/base.d.ts +0 -15
  301. package/dist/evals/base.js +0 -51
  302. package/dist/evals/base.js.map +0 -1
  303. package/dist/evals/bias.d.ts +0 -4
  304. package/dist/evals/bias.js +0 -35
  305. package/dist/evals/bias.js.map +0 -1
  306. package/dist/evals/hallucination.d.ts +0 -4
  307. package/dist/evals/hallucination.js +0 -32
  308. package/dist/evals/hallucination.js.map +0 -1
  309. package/dist/evals/llm/anthropic.d.ts +0 -5
  310. package/dist/evals/llm/anthropic.js +0 -42
  311. package/dist/evals/llm/anthropic.js.map +0 -1
  312. package/dist/evals/llm/openai.d.ts +0 -6
  313. package/dist/evals/llm/openai.js +0 -28
  314. package/dist/evals/llm/openai.js.map +0 -1
  315. package/dist/evals/llm/providers.d.ts +0 -7
  316. package/dist/evals/llm/providers.js +0 -10
  317. package/dist/evals/llm/providers.js.map +0 -1
  318. package/dist/evals/metrics.d.ts +0 -9
  319. package/dist/evals/metrics.js +0 -38
  320. package/dist/evals/metrics.js.map +0 -1
  321. package/dist/evals/toxicity.d.ts +0 -4
  322. package/dist/evals/toxicity.js +0 -33
  323. package/dist/evals/toxicity.js.map +0 -1
  324. package/dist/evals/utils.d.ts +0 -4
  325. package/dist/evals/utils.js +0 -39
  326. package/dist/evals/utils.js.map +0 -1
  327. package/dist/guard/__tests__/gaurd.test.js +0 -136
  328. package/dist/guard/__tests__/gaurd.test.js.map +0 -1
  329. package/dist/guard/__tests__/utils.test.js +0 -64
  330. package/dist/guard/__tests__/utils.test.js.map +0 -1
  331. package/dist/guard/all.d.ts +0 -8
  332. package/dist/guard/all.js +0 -28
  333. package/dist/guard/all.js.map +0 -1
  334. package/dist/guard/types.d.ts +0 -26
  335. package/dist/guard/types.js +0 -4
  336. package/dist/guard/types.js.map +0 -1
  337. package/dist/guard/utils.d.ts +0 -13
  338. package/dist/guard/utils.js +0 -79
  339. package/dist/guard/utils.js.map +0 -1
  340. /package/dist/{evals/__tests__/anthropic.test.d.ts → __tests__/manual-trace.test.d.ts} +0 -0
  341. /package/dist/{evals/__tests__/metrics.test.d.ts → __tests__/register.test.d.ts} +0 -0
  342. /package/dist/evals/__tests__/{base.test.d.ts → offline.test.d.ts} +0 -0
  343. /package/dist/{evals/__tests__/core.test.d.ts → guard/__tests__/integration.test.d.ts} +0 -0
  344. /package/dist/{evals/__tests__/openai.test.d.ts → guard/__tests__/pii.test.d.ts} +0 -0
  345. /package/dist/{evals/__tests__/providers.test.d.ts → guard/__tests__/pipeline.test.d.ts} +0 -0
  346. /package/dist/{evals/__tests__/utils.test.d.ts → guard/__tests__/prompt-injection.test.d.ts} +0 -0
  347. /package/dist/{guard/__tests__/gaurd.test.d.ts → instrumentation/__tests__/assemblyai-wrapper.test.d.ts} +0 -0
  348. /package/dist/{guard/__tests__/utils.test.d.ts → instrumentation/__tests__/browser-use-wrapper.test.d.ts} +0 -0
@@ -0,0 +1,378 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ const api_1 = require("@opentelemetry/api");
40
+ const core_1 = require("@opentelemetry/core");
41
+ const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
42
+ const config_1 = __importDefault(require("../../config"));
43
+ const constant_1 = require("../../constant");
44
+ const helpers_1 = __importStar(require("../../helpers"));
45
+ const semantic_convention_1 = __importDefault(require("../../semantic-convention"));
46
+ const SERVER_ADDRESS = 'api.firecrawl.dev';
47
+ const SERVER_PORT = 443;
48
+ /**
49
+ * Maps Python-style endpoint identifiers to short operation names.
50
+ * Mirrors `FIRECRAWL_OPERATION_MAP` in the Python reference, plus intentional
51
+ * fixes Python still has as bugs:
52
+ * - `firecrawl.crawl_status` (what Python actually passes for check_crawl_status)
53
+ * - `firecrawl.extract` / `firecrawl.async_extract` (instrumented but unmapped in Python)
54
+ * - `firecrawl.get_extract_status` / `firecrawl.cancel_crawl` with correct op names
55
+ */
56
+ const FIRECRAWL_OPERATION_MAP = {
57
+ 'firecrawl.scrape_url': semantic_convention_1.default.GEN_AI_OPERATION_TYPE_SCRAPE,
58
+ 'firecrawl.async_scrape_url': semantic_convention_1.default.GEN_AI_OPERATION_TYPE_SCRAPE,
59
+ 'firecrawl.crawl_url': semantic_convention_1.default.GEN_AI_OPERATION_TYPE_CRAWL,
60
+ 'firecrawl.async_crawl_url': semantic_convention_1.default.GEN_AI_OPERATION_TYPE_CRAWL,
61
+ 'firecrawl.get_crawl_status': semantic_convention_1.default.GEN_AI_OPERATION_TYPE_CRAWL_STATUS,
62
+ 'firecrawl.crawl_status': semantic_convention_1.default.GEN_AI_OPERATION_TYPE_CRAWL_STATUS,
63
+ 'firecrawl.get_scrape_status': semantic_convention_1.default.GEN_AI_OPERATION_TYPE_SCRAPE_STATUS,
64
+ 'firecrawl.async_get_scrape_status': semantic_convention_1.default.GEN_AI_OPERATION_TYPE_SCRAPE_STATUS,
65
+ 'firecrawl.map_url': semantic_convention_1.default.GEN_AI_OPERATION_TYPE_MAP,
66
+ 'firecrawl.async_map_url': semantic_convention_1.default.GEN_AI_OPERATION_TYPE_MAP,
67
+ 'firecrawl.search': semantic_convention_1.default.GEN_AI_OPERATION_TYPE_SEARCH,
68
+ 'firecrawl.async_search': semantic_convention_1.default.GEN_AI_OPERATION_TYPE_SEARCH,
69
+ 'firecrawl.extract': semantic_convention_1.default.GEN_AI_OPERATION_TYPE_EXTRACT,
70
+ 'firecrawl.async_extract': semantic_convention_1.default.GEN_AI_OPERATION_TYPE_EXTRACT,
71
+ 'firecrawl.get_extract_status': semantic_convention_1.default.GEN_AI_OPERATION_TYPE_EXTRACT_STATUS,
72
+ 'firecrawl.batch_scrape_urls': semantic_convention_1.default.GEN_AI_OPERATION_TYPE_SCRAPE,
73
+ 'firecrawl.async_batch_scrape_urls': semantic_convention_1.default.GEN_AI_OPERATION_TYPE_SCRAPE,
74
+ // Python maps cancel → "crawl"; use dedicated cancel op (semcov already defines it).
75
+ 'firecrawl.cancel_crawl': semantic_convention_1.default.GEN_AI_OPERATION_TYPE_CANCEL,
76
+ 'firecrawl.async_cancel_crawl': semantic_convention_1.default.GEN_AI_OPERATION_TYPE_CANCEL,
77
+ };
78
+ function truncateContent(content, maxLength) {
79
+ const limit = maxLength ?? config_1.default.maxContentLength;
80
+ if (typeof limit === 'number' && limit > 0 && content.length > limit) {
81
+ return content.slice(0, limit);
82
+ }
83
+ return content;
84
+ }
85
+ function formatContent(content, maxLength) {
86
+ if (content === undefined || content === null)
87
+ return '';
88
+ const str = String(content);
89
+ return str.length > maxLength ? `${str.slice(0, maxLength)}...` : str;
90
+ }
91
+ function getOperationName(endpoint) {
92
+ return FIRECRAWL_OPERATION_MAP[endpoint] ?? semantic_convention_1.default.GEN_AI_OPERATION_TYPE_SCRAPE;
93
+ }
94
+ /** Primary URL / query / job id for a single-target operation. */
95
+ function resolveUrl(args) {
96
+ if (args.length > 0 && typeof args[0] === 'string') {
97
+ return args[0];
98
+ }
99
+ if (args[0] && typeof args[0] === 'object' && typeof args[0].url === 'string') {
100
+ return args[0].url;
101
+ }
102
+ return 'unknown';
103
+ }
104
+ /**
105
+ * URL list for batch / extract operations.
106
+ * Supports positional `string[]` and `{ urls: string[] }` option bags.
107
+ */
108
+ function resolveUrls(args) {
109
+ if (Array.isArray(args[0])) {
110
+ return args[0].map((url) => String(url));
111
+ }
112
+ if (args[0] && typeof args[0] === 'object' && Array.isArray(args[0].urls)) {
113
+ return args[0].urls.map((url) => String(url));
114
+ }
115
+ // extract / asyncExtract may pass urls as the first arg; also accept second-arg urls
116
+ if (args[1] && typeof args[1] === 'object' && Array.isArray(args[1].urls)) {
117
+ return args[1].urls.map((url) => String(url));
118
+ }
119
+ return [];
120
+ }
121
+ /**
122
+ * Builds `{operation} {target}` span names matching the Python reference.
123
+ * Multi-URL ops (batch scrape, extract) list a bounded sample of URLs.
124
+ */
125
+ function getSpanName(operation, url, urls) {
126
+ if (urls.length > 0) {
127
+ if (urls.length <= 3) {
128
+ const urlsStr = urls.join(', ');
129
+ if (urlsStr.length <= 80) {
130
+ return `${operation} [${urlsStr}]`;
131
+ }
132
+ }
133
+ const sample = urls.slice(0, 2);
134
+ const remaining = urls.length - 2;
135
+ const urlsSample = remaining > 0 ? `${sample.join(', ')} +${remaining} more` : sample.join(', ');
136
+ return `${operation} [${urlsSample}]`;
137
+ }
138
+ return `${operation} ${url}`;
139
+ }
140
+ class FirecrawlWrapper {
141
+ /**
142
+ * Wraps a Promise-returning Firecrawl method into a CLIENT span named
143
+ * `{operation} {target}`. `endpoint` is the Python-style endpoint id that
144
+ * drives the operation name.
145
+ */
146
+ static _patchOperation(tracer, endpoint, version) {
147
+ const sdkVersion = version || 'unknown';
148
+ return (originalMethod) => {
149
+ return async function (...args) {
150
+ if ((0, core_1.isTracingSuppressed)(api_1.context.active())) {
151
+ return originalMethod.apply(this, args);
152
+ }
153
+ const operation = getOperationName(endpoint);
154
+ const urls = resolveUrls(args);
155
+ const url = urls.length > 0 ? urls[0] : resolveUrl(args);
156
+ const isMultiUrl = urls.length > 0;
157
+ const spanName = getSpanName(operation, url, urls);
158
+ const span = tracer.startSpan(spanName, {
159
+ kind: api_1.SpanKind.CLIENT,
160
+ attributes: {
161
+ [semantic_convention_1.default.GEN_AI_OPERATION]: operation,
162
+ [semantic_convention_1.default.GEN_AI_PROVIDER_NAME_OTEL]: FirecrawlWrapper.aiSystem,
163
+ },
164
+ });
165
+ const startTime = Date.now();
166
+ FirecrawlWrapper._setSpanAttributes(span, operation, sdkVersion, url, urls, isMultiUrl);
167
+ (0, helpers_1.applyCustomSpanAttributes)(span);
168
+ return api_1.context.with(api_1.trace.setSpan(api_1.context.active(), span), async () => {
169
+ try {
170
+ const response = await originalMethod.apply(this, args);
171
+ span.setAttribute(semantic_convention_1.default.GEN_AI_CLIENT_OPERATION_DURATION, (Date.now() - startTime) / 1000);
172
+ FirecrawlWrapper._processResponse(span, response, url);
173
+ span.setStatus({ code: api_1.SpanStatusCode.OK });
174
+ return response;
175
+ }
176
+ catch (e) {
177
+ span.setAttribute(semantic_convention_1.default.GEN_AI_CLIENT_OPERATION_DURATION, (Date.now() - startTime) / 1000);
178
+ FirecrawlWrapper._handleError(span, e);
179
+ helpers_1.default.handleException(span, e);
180
+ throw e;
181
+ }
182
+ finally {
183
+ span.end();
184
+ }
185
+ });
186
+ };
187
+ };
188
+ }
189
+ /** Framework + request attributes (Python `set_span_attributes` parity). */
190
+ static _setSpanAttributes(span, operation, sdkVersion, url, urls, isMultiUrl) {
191
+ span.setAttribute(semantic_conventions_1.ATTR_TELEMETRY_SDK_NAME, constant_1.SDK_NAME);
192
+ span.setAttribute(semantic_convention_1.default.GEN_AI_PROVIDER_NAME, FirecrawlWrapper.aiSystem);
193
+ span.setAttribute(semantic_convention_1.default.GEN_AI_PROVIDER_NAME_OTEL, FirecrawlWrapper.aiSystem);
194
+ span.setAttribute(semantic_convention_1.default.GEN_AI_OPERATION, operation);
195
+ span.setAttribute(semantic_convention_1.default.ATTR_DEPLOYMENT_ENVIRONMENT, config_1.default.environment || '');
196
+ span.setAttribute(semantic_conventions_1.ATTR_SERVICE_NAME, config_1.default.applicationName || '');
197
+ span.setAttribute(semantic_convention_1.default.GEN_AI_SDK_VERSION, sdkVersion);
198
+ span.setAttribute(semantic_convention_1.default.SERVER_ADDRESS, SERVER_ADDRESS);
199
+ span.setAttribute(semantic_convention_1.default.SERVER_PORT, SERVER_PORT);
200
+ span.setAttribute(semantic_convention_1.default.GEN_AI_AGENT_TYPE, semantic_convention_1.default.GEN_AI_AGENT_TYPE_BROWSER);
201
+ if (isMultiUrl) {
202
+ span.setAttribute(semantic_convention_1.default.GEN_AI_CRAWL_URL_COUNT, urls.length);
203
+ span.setAttribute(semantic_convention_1.default.GEN_AI_AGENT_BROWSE_URL, urls[0]);
204
+ }
205
+ else if (url && url !== 'unknown') {
206
+ span.setAttribute(semantic_convention_1.default.GEN_AI_AGENT_BROWSE_URL, url);
207
+ }
208
+ }
209
+ /** Response business-intelligence attributes (Python `process_response` parity). */
210
+ static _processResponse(span, response, url) {
211
+ if (response === undefined || response === null)
212
+ return;
213
+ if (Array.isArray(response)) {
214
+ span.setAttribute(semantic_convention_1.default.GEN_AI_CRAWL_URL_COUNT, response.length);
215
+ span.setAttribute(semantic_convention_1.default.GEN_AI_CRAWL_RESULT_SUCCESS, true);
216
+ const successCount = response.filter((item) => item && typeof item === 'object' && (item.success ?? true)).length;
217
+ span.setAttribute(semantic_convention_1.default.GEN_AI_CRAWL_RESULT_SUCCESS_COUNT, successCount);
218
+ span.setAttribute(semantic_convention_1.default.GEN_AI_CRAWL_RESULT_SUCCESS_RATE, response.length ? successCount / response.length : 0);
219
+ if (config_1.default.captureMessageContent) {
220
+ span.setAttribute(semantic_convention_1.default.GEN_AI_OUTPUT_MESSAGES, `Processed ${response.length} URLs, ${successCount} successful`);
221
+ }
222
+ return;
223
+ }
224
+ if (typeof response === 'object') {
225
+ FirecrawlWrapper._processSingleResponse(span, response, url);
226
+ return;
227
+ }
228
+ span.setAttribute(semantic_convention_1.default.GEN_AI_RESPONSE_TYPE, typeof response);
229
+ }
230
+ static _processSingleResponse(span, response, url) {
231
+ const success = response.success ?? true;
232
+ span.setAttribute(semantic_convention_1.default.GEN_AI_CRAWL_RESULT_SUCCESS, success);
233
+ if (response.warning) {
234
+ span.setAttribute(semantic_convention_1.default.GEN_AI_RESPONSE_WARNING, String(response.warning));
235
+ }
236
+ if (response.error) {
237
+ span.setAttribute(semantic_convention_1.default.GEN_AI_RESPONSE_ERROR, String(response.error));
238
+ }
239
+ const metadata = response.metadata;
240
+ if (metadata && typeof metadata === 'object') {
241
+ if (metadata.title) {
242
+ span.setAttribute(semantic_convention_1.default.GEN_AI_RESPONSE_TITLE, String(metadata.title));
243
+ }
244
+ if (metadata.description) {
245
+ span.setAttribute(semantic_convention_1.default.GEN_AI_RESPONSE_DESCRIPTION, String(metadata.description));
246
+ }
247
+ if (metadata.statusCode !== undefined) {
248
+ span.setAttribute(semantic_convention_1.default.GEN_AI_CRAWL_RESULT_STATUS_CODE, metadata.statusCode);
249
+ }
250
+ if (metadata.error) {
251
+ span.setAttribute(semantic_convention_1.default.GEN_AI_RESPONSE_ERROR, String(metadata.error));
252
+ }
253
+ }
254
+ if (response.markdown) {
255
+ span.setAttribute(semantic_convention_1.default.GEN_AI_CRAWL_RESULT_MARKDOWN_LENGTH, String(response.markdown).length);
256
+ }
257
+ else if (response.html) {
258
+ span.setAttribute(semantic_convention_1.default.GEN_AI_CRAWL_RESULT_HTML_LENGTH, String(response.html).length);
259
+ }
260
+ else if (response.rawHtml) {
261
+ span.setAttribute(semantic_convention_1.default.GEN_AI_CRAWL_RESULT_HTML_LENGTH, String(response.rawHtml).length);
262
+ }
263
+ if (Array.isArray(response.links)) {
264
+ span.setAttribute(semantic_convention_1.default.GEN_AI_CRAWL_RESULT_LINKS_COUNT, response.links.length);
265
+ }
266
+ if (response.screenshot) {
267
+ span.setAttribute(semantic_convention_1.default.GEN_AI_RESPONSE_HAS_SCREENSHOT, true);
268
+ }
269
+ if (response.completed !== undefined && response.completed !== null) {
270
+ span.setAttribute(semantic_convention_1.default.GEN_AI_RESPONSE_PROGRESS_COMPLETED, response.completed);
271
+ }
272
+ if (response.total !== undefined && response.total !== null) {
273
+ span.setAttribute(semantic_convention_1.default.GEN_AI_RESPONSE_PROGRESS_TOTAL, response.total);
274
+ if (response.completed !== undefined &&
275
+ response.completed !== null &&
276
+ response.total > 0) {
277
+ span.setAttribute(semantic_convention_1.default.GEN_AI_RESPONSE_COMPLETION_RATE, (response.completed / response.total) * 100);
278
+ }
279
+ }
280
+ if (response.creditsUsed !== undefined && response.creditsUsed !== null) {
281
+ span.setAttribute(semantic_convention_1.default.GEN_AI_RESPONSE_CREDITS_USED, response.creditsUsed);
282
+ }
283
+ if (response.status) {
284
+ span.setAttribute(semantic_convention_1.default.GEN_AI_MONITOR_TASK_STATUS, String(response.status));
285
+ }
286
+ if (response.id) {
287
+ span.setAttribute(semantic_convention_1.default.GEN_AI_RESPONSE_JOB_ID, String(response.id));
288
+ }
289
+ if (response.expiresAt) {
290
+ span.setAttribute(semantic_convention_1.default.GEN_AI_RESPONSE_EXPIRES_AT, String(response.expiresAt));
291
+ }
292
+ if (Array.isArray(response.data)) {
293
+ span.setAttribute(semantic_convention_1.default.GEN_AI_RESPONSE_DATA_COUNT, response.data.length);
294
+ let totalLinks = 0;
295
+ let totalContentLength = 0;
296
+ let successCount = 0;
297
+ for (const item of response.data) {
298
+ if (!item || typeof item !== 'object')
299
+ continue;
300
+ if (item.success ?? true)
301
+ successCount += 1;
302
+ if (Array.isArray(item.links))
303
+ totalLinks += item.links.length;
304
+ if (item.markdown) {
305
+ totalContentLength += String(item.markdown).length;
306
+ }
307
+ else if (item.html) {
308
+ totalContentLength += String(item.html).length;
309
+ }
310
+ }
311
+ if (totalLinks > 0) {
312
+ span.setAttribute(semantic_convention_1.default.GEN_AI_RESPONSE_TOTAL_LINKS_COUNT, totalLinks);
313
+ }
314
+ if (totalContentLength > 0) {
315
+ span.setAttribute(semantic_convention_1.default.GEN_AI_RESPONSE_TOTAL_CONTENT_LENGTH, totalContentLength);
316
+ }
317
+ if (response.data.length > 0) {
318
+ span.setAttribute(semantic_convention_1.default.GEN_AI_RESPONSE_SUCCESS_RATE, successCount / response.data.length);
319
+ }
320
+ }
321
+ if (config_1.default.captureMessageContent) {
322
+ FirecrawlWrapper._captureContentSummary(span, response, url);
323
+ }
324
+ }
325
+ static _captureContentSummary(span, response, url) {
326
+ span.setAttribute(semantic_convention_1.default.GEN_AI_INPUT_MESSAGES, url);
327
+ if (response.markdown) {
328
+ span.setAttribute(semantic_convention_1.default.GEN_AI_OUTPUT_MESSAGES, formatContent(response.markdown, 500));
329
+ }
330
+ else if (response.html) {
331
+ span.setAttribute(semantic_convention_1.default.GEN_AI_OUTPUT_MESSAGES, formatContent(response.html, 300));
332
+ }
333
+ else if (response.text) {
334
+ span.setAttribute(semantic_convention_1.default.GEN_AI_OUTPUT_MESSAGES, formatContent(response.text, 500));
335
+ }
336
+ else {
337
+ const title = response.metadata?.title;
338
+ span.setAttribute(semantic_convention_1.default.GEN_AI_OUTPUT_MESSAGES, title ? `Scraped: ${title}` : 'Content scraped successfully');
339
+ }
340
+ }
341
+ /**
342
+ * Firecrawl-specific error attributes. `OpenLitHelper.handleException` still
343
+ * records the exception, ERROR status, and `error.type`.
344
+ */
345
+ static _handleError(span, error) {
346
+ span.setAttribute(semantic_convention_1.default.ERROR_MESSAGE, String(error?.message ?? error));
347
+ const httpResponse = error?.response;
348
+ if (httpResponse && typeof httpResponse === 'object') {
349
+ if (httpResponse.status_code !== undefined) {
350
+ span.setAttribute(semantic_convention_1.default.HTTP_STATUS_CODE, httpResponse.status_code);
351
+ }
352
+ else if (httpResponse.status !== undefined) {
353
+ span.setAttribute(semantic_convention_1.default.HTTP_STATUS_CODE, httpResponse.status);
354
+ }
355
+ if (typeof httpResponse.text === 'string') {
356
+ span.setAttribute(semantic_convention_1.default.ERROR_RESPONSE_TEXT, truncateContent(httpResponse.text));
357
+ }
358
+ }
359
+ const message = String(error?.message ?? error).toLowerCase();
360
+ let category = 'unknown';
361
+ if (message.includes('rate limit')) {
362
+ category = 'rate_limit';
363
+ }
364
+ else if (message.includes('api key') || message.includes('authentication')) {
365
+ category = 'authentication';
366
+ }
367
+ else if (message.includes('timeout')) {
368
+ category = 'timeout';
369
+ }
370
+ else if (message.includes('not found')) {
371
+ category = 'not_found';
372
+ }
373
+ span.setAttribute(semantic_convention_1.default.ERROR_CATEGORY, category);
374
+ }
375
+ }
376
+ FirecrawlWrapper.aiSystem = semantic_convention_1.default.GEN_AI_SYSTEM_FIRECRAWL;
377
+ exports.default = FirecrawlWrapper;
378
+ //# sourceMappingURL=wrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../../src/instrumentation/firecrawl/wrapper.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,19 @@ declare class GoogleAIWrapper extends BaseWrapper {
4
4
  static aiSystem: string;
5
5
  static serverAddress: string;
6
6
  static serverPort: number;
7
+ /**
8
+ * Stamp `openlit.agent.version_hash` (auto) and `gen_ai.agent.version`
9
+ * (user override, if set) on the span and return the same attributes so
10
+ * the caller can merge them into the inference event extras.
11
+ */
12
+ static _stampAgentVersion(span: Span, args: {
13
+ systemInstructionsJson?: string;
14
+ toolDefinitionsJson?: string;
15
+ primaryModel?: string;
16
+ temperature?: number | null;
17
+ top_p?: number | null;
18
+ max_tokens?: number | null;
19
+ }): Record<string, string>;
7
20
  static _patchGenerateContent(tracer: Tracer): any;
8
21
  static _generateContent({ args, genAIEndpoint, response, span, requestModel, }: {
9
22
  args: any[];
@@ -51,6 +51,41 @@ function spanCreationAttrs(operationName, requestModel) {
51
51
  };
52
52
  }
53
53
  class GoogleAIWrapper extends base_wrapper_1.default {
54
+ /**
55
+ * Stamp `openlit.agent.version_hash` (auto) and `gen_ai.agent.version`
56
+ * (user override, if set) on the span and return the same attributes so
57
+ * the caller can merge them into the inference event extras.
58
+ */
59
+ static _stampAgentVersion(span, args) {
60
+ const out = {};
61
+ try {
62
+ const versionHash = helpers_1.default.computeAgentVersionHash({
63
+ systemInstructions: args.systemInstructionsJson ?? null,
64
+ toolDefinitions: args.toolDefinitionsJson ?? null,
65
+ primaryModel: args.primaryModel ?? null,
66
+ runtimeConfig: {
67
+ temperature: args.temperature ?? null,
68
+ top_p: args.top_p ?? null,
69
+ max_tokens: args.max_tokens ?? null,
70
+ provider: semantic_convention_1.default.GEN_AI_SYSTEM_GOOGLE_AI_STUDIO,
71
+ },
72
+ providers: [semantic_convention_1.default.GEN_AI_SYSTEM_GOOGLE_AI_STUDIO],
73
+ });
74
+ if (versionHash) {
75
+ out[semantic_convention_1.default.OPENLIT_AGENT_VERSION_HASH] = versionHash;
76
+ span.setAttribute(semantic_convention_1.default.OPENLIT_AGENT_VERSION_HASH, versionHash);
77
+ }
78
+ }
79
+ catch {
80
+ // Hash computation must never fail the wrapped call.
81
+ }
82
+ const versionLabel = (0, helpers_1.getCurrentAgentVersion)();
83
+ if (versionLabel) {
84
+ out[semantic_convention_1.default.GEN_AI_AGENT_VERSION] = versionLabel;
85
+ span.setAttribute(semantic_convention_1.default.GEN_AI_AGENT_VERSION, versionLabel);
86
+ }
87
+ return out;
88
+ }
54
89
  static _patchGenerateContent(tracer) {
55
90
  const genAIEndpoint = 'google.generativeai.models.generate_content';
56
91
  return (originalMethod) => {
@@ -218,7 +253,7 @@ class GoogleAIWrapper extends base_wrapper_1.default {
218
253
  // Streaming: result = our accumulated plain object
219
254
  const responseData = result.response || result;
220
255
  const config = args[0]?.config || args[1] || {};
221
- const { temperature, maxOutputTokens, topP, topK, stopSequences, frequencyPenalty, presencePenalty, } = config;
256
+ const { temperature, maxOutputTokens, topP, topK, stopSequences, frequencyPenalty, presencePenalty, systemInstruction, tools: _tools, } = config;
222
257
  // Request param attributes — only set when explicitly provided (matches Python)
223
258
  if (temperature != null) {
224
259
  span.setAttribute(semantic_convention_1.default.GEN_AI_REQUEST_TEMPERATURE, temperature);
@@ -313,6 +348,44 @@ class GoogleAIWrapper extends base_wrapper_1.default {
313
348
  // Content attributes (gated by captureMessageContent)
314
349
  let inputMessagesJson;
315
350
  let outputMessagesJson;
351
+ const toolDefinitionsJson = helpers_1.default.buildToolDefinitions(Array.isArray(_tools)
352
+ ? _tools.flatMap((tool) => Array.isArray(tool?.functionDeclarations) ? tool.functionDeclarations : tool)
353
+ : _tools);
354
+ // Compute system_instructions JSON regardless of captureContent so the
355
+ // version hash still groups correctly when content capture is disabled.
356
+ let systemInstructionsJson;
357
+ if (systemInstruction) {
358
+ let systemText = '';
359
+ if (typeof systemInstruction === 'string') {
360
+ systemText = systemInstruction;
361
+ }
362
+ else if (Array.isArray(systemInstruction)) {
363
+ systemText = systemInstruction
364
+ .map((part) => (typeof part === 'string' ? part : (part?.text || '')))
365
+ .filter(Boolean)
366
+ .join('\n');
367
+ }
368
+ else if (Array.isArray(systemInstruction.parts)) {
369
+ systemText = systemInstruction.parts
370
+ .map((part) => part?.text || '')
371
+ .filter(Boolean)
372
+ .join('\n');
373
+ }
374
+ else if (typeof systemInstruction.text === 'string') {
375
+ systemText = systemInstruction.text;
376
+ }
377
+ if (systemText) {
378
+ systemInstructionsJson = JSON.stringify([{ type: 'text', content: systemText }]);
379
+ }
380
+ }
381
+ const versionExtras = GoogleAIWrapper._stampAgentVersion(span, {
382
+ systemInstructionsJson,
383
+ toolDefinitionsJson,
384
+ primaryModel: responseModel || requestModel,
385
+ temperature: temperature ?? null,
386
+ top_p: topP ?? null,
387
+ max_tokens: maxOutputTokens ?? null,
388
+ });
316
389
  if (captureContent) {
317
390
  const contents = args[0]?.contents || args[0];
318
391
  let messages = [];
@@ -338,6 +411,12 @@ class GoogleAIWrapper extends base_wrapper_1.default {
338
411
  }] : undefined;
339
412
  outputMessagesJson = helpers_1.default.buildOutputMessages(outputContent, finishReason || 'stop', toolCallsForOutput);
340
413
  span.setAttribute(semantic_convention_1.default.GEN_AI_OUTPUT_MESSAGES, outputMessagesJson);
414
+ if (systemInstructionsJson) {
415
+ span.setAttribute(semantic_convention_1.default.GEN_AI_SYSTEM_INSTRUCTIONS, systemInstructionsJson);
416
+ }
417
+ }
418
+ if (toolDefinitionsJson) {
419
+ span.setAttribute(semantic_convention_1.default.GEN_AI_TOOL_DEFINITIONS, toolDefinitionsJson);
341
420
  }
342
421
  // Emit inference event (independent of captureMessageContent, per rule)
343
422
  if (!config_1.default.disableEvents) {
@@ -350,6 +429,7 @@ class GoogleAIWrapper extends base_wrapper_1.default {
350
429
  [semantic_convention_1.default.GEN_AI_OUTPUT_TYPE]: outputType,
351
430
  [semantic_convention_1.default.GEN_AI_USAGE_INPUT_TOKENS]: inputTokens,
352
431
  [semantic_convention_1.default.GEN_AI_USAGE_OUTPUT_TOKENS]: outputTokens,
432
+ ...versionExtras,
353
433
  };
354
434
  if (responseId) {
355
435
  eventAttrs[semantic_convention_1.default.GEN_AI_RESPONSE_ID] = responseId;
@@ -362,7 +442,11 @@ class GoogleAIWrapper extends base_wrapper_1.default {
362
442
  eventAttrs[semantic_convention_1.default.GEN_AI_INPUT_MESSAGES] = inputMessagesJson;
363
443
  if (outputMessagesJson)
364
444
  eventAttrs[semantic_convention_1.default.GEN_AI_OUTPUT_MESSAGES] = outputMessagesJson;
445
+ if (systemInstructionsJson)
446
+ eventAttrs[semantic_convention_1.default.GEN_AI_SYSTEM_INSTRUCTIONS] = systemInstructionsJson;
365
447
  }
448
+ if (toolDefinitionsJson)
449
+ eventAttrs[semantic_convention_1.default.GEN_AI_TOOL_DEFINITIONS] = toolDefinitionsJson;
366
450
  helpers_1.default.emitInferenceEvent(span, eventAttrs);
367
451
  }
368
452
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../../src/instrumentation/google-ai/wrapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"wrapper.js","sourceRoot":"","sources":["../../../src/instrumentation/google-ai/wrapper.ts"],"names":[],"mappings":"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"}