openlit 1.12.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 (352) 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 +416 -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/index.d.ts +21 -0
  156. package/dist/instrumentation/cursor-sdk/index.js +58 -0
  157. package/dist/instrumentation/cursor-sdk/index.js.map +1 -0
  158. package/dist/instrumentation/cursor-sdk/wrapper.d.ts +17 -0
  159. package/dist/instrumentation/cursor-sdk/wrapper.js +785 -0
  160. package/dist/instrumentation/cursor-sdk/wrapper.js.map +1 -0
  161. package/dist/instrumentation/elevenlabs/index.d.ts +12 -0
  162. package/dist/instrumentation/elevenlabs/index.js +92 -0
  163. package/dist/instrumentation/elevenlabs/index.js.map +1 -0
  164. package/dist/instrumentation/elevenlabs/wrapper.d.ts +34 -0
  165. package/dist/instrumentation/elevenlabs/wrapper.js +280 -0
  166. package/dist/instrumentation/elevenlabs/wrapper.js.map +1 -0
  167. package/dist/instrumentation/firecrawl/index.d.ts +13 -0
  168. package/dist/instrumentation/firecrawl/index.js +115 -0
  169. package/dist/instrumentation/firecrawl/index.js.map +1 -0
  170. package/dist/instrumentation/firecrawl/wrapper.d.ts +22 -0
  171. package/dist/instrumentation/firecrawl/wrapper.js +378 -0
  172. package/dist/instrumentation/firecrawl/wrapper.js.map +1 -0
  173. package/dist/instrumentation/google-ai/wrapper.d.ts +13 -0
  174. package/dist/instrumentation/google-ai/wrapper.js +85 -1
  175. package/dist/instrumentation/google-ai/wrapper.js.map +1 -1
  176. package/dist/instrumentation/gpu/index.d.ts +38 -0
  177. package/dist/instrumentation/gpu/index.js +233 -0
  178. package/dist/instrumentation/gpu/index.js.map +1 -0
  179. package/dist/instrumentation/gradient/index.d.ts +12 -0
  180. package/dist/instrumentation/gradient/index.js +74 -0
  181. package/dist/instrumentation/gradient/index.js.map +1 -0
  182. package/dist/instrumentation/gradient/utils.d.ts +14 -0
  183. package/dist/instrumentation/gradient/utils.js +119 -0
  184. package/dist/instrumentation/gradient/utils.js.map +1 -0
  185. package/dist/instrumentation/gradient/wrapper.d.ts +76 -0
  186. package/dist/instrumentation/gradient/wrapper.js +584 -0
  187. package/dist/instrumentation/gradient/wrapper.js.map +1 -0
  188. package/dist/instrumentation/groq/wrapper.js +42 -0
  189. package/dist/instrumentation/groq/wrapper.js.map +1 -1
  190. package/dist/instrumentation/huggingface/wrapper.d.ts +13 -0
  191. package/dist/instrumentation/huggingface/wrapper.js +66 -0
  192. package/dist/instrumentation/huggingface/wrapper.js.map +1 -1
  193. package/dist/instrumentation/index.js +28 -0
  194. package/dist/instrumentation/index.js.map +1 -1
  195. package/dist/instrumentation/langchain/wrapper.js +5 -8
  196. package/dist/instrumentation/langchain/wrapper.js.map +1 -1
  197. package/dist/instrumentation/langgraph/wrapper.js +12 -11
  198. package/dist/instrumentation/langgraph/wrapper.js.map +1 -1
  199. package/dist/instrumentation/llamaindex/wrapper.d.ts +14 -1
  200. package/dist/instrumentation/llamaindex/wrapper.js +68 -0
  201. package/dist/instrumentation/llamaindex/wrapper.js.map +1 -1
  202. package/dist/instrumentation/mcp/index.d.ts +20 -0
  203. package/dist/instrumentation/mcp/index.js +282 -0
  204. package/dist/instrumentation/mcp/index.js.map +1 -0
  205. package/dist/instrumentation/mcp/wrapper.d.ts +72 -0
  206. package/dist/instrumentation/mcp/wrapper.js +571 -0
  207. package/dist/instrumentation/mcp/wrapper.js.map +1 -0
  208. package/dist/instrumentation/mem0/index.d.ts +17 -0
  209. package/dist/instrumentation/mem0/index.js +113 -0
  210. package/dist/instrumentation/mem0/index.js.map +1 -0
  211. package/dist/instrumentation/mem0/wrapper.d.ts +37 -0
  212. package/dist/instrumentation/mem0/wrapper.js +298 -0
  213. package/dist/instrumentation/mem0/wrapper.js.map +1 -0
  214. package/dist/instrumentation/mistral/wrapper.d.ts +13 -0
  215. package/dist/instrumentation/mistral/wrapper.js +60 -1
  216. package/dist/instrumentation/mistral/wrapper.js.map +1 -1
  217. package/dist/instrumentation/ollama/wrapper.d.ts +13 -0
  218. package/dist/instrumentation/ollama/wrapper.js +67 -1
  219. package/dist/instrumentation/ollama/wrapper.js.map +1 -1
  220. package/dist/instrumentation/openai/wrapper.d.ts +13 -0
  221. package/dist/instrumentation/openai/wrapper.js +89 -3
  222. package/dist/instrumentation/openai/wrapper.js.map +1 -1
  223. package/dist/instrumentation/pg/index.d.ts +20 -0
  224. package/dist/instrumentation/pg/index.js +74 -0
  225. package/dist/instrumentation/pg/index.js.map +1 -0
  226. package/dist/instrumentation/pg/wrapper.d.ts +66 -0
  227. package/dist/instrumentation/pg/wrapper.js +441 -0
  228. package/dist/instrumentation/pg/wrapper.js.map +1 -0
  229. package/dist/instrumentation/replicate/wrapper.d.ts +13 -0
  230. package/dist/instrumentation/replicate/wrapper.js +61 -0
  231. package/dist/instrumentation/replicate/wrapper.js.map +1 -1
  232. package/dist/instrumentation/strands/processor.d.ts +6 -0
  233. package/dist/instrumentation/strands/processor.js +73 -3
  234. package/dist/instrumentation/strands/processor.js.map +1 -1
  235. package/dist/instrumentation/strands/utils.d.ts +2 -2
  236. package/dist/instrumentation/strands/utils.js +15 -2
  237. package/dist/instrumentation/strands/utils.js.map +1 -1
  238. package/dist/instrumentation/together/wrapper.d.ts +13 -0
  239. package/dist/instrumentation/together/wrapper.js +59 -1
  240. package/dist/instrumentation/together/wrapper.js.map +1 -1
  241. package/dist/instrumentation/transformers/index.d.ts +35 -0
  242. package/dist/instrumentation/transformers/index.js +119 -0
  243. package/dist/instrumentation/transformers/index.js.map +1 -0
  244. package/dist/instrumentation/transformers/wrapper.d.ts +49 -0
  245. package/dist/instrumentation/transformers/wrapper.js +472 -0
  246. package/dist/instrumentation/transformers/wrapper.js.map +1 -0
  247. package/dist/instrumentation/vercel-ai/wrapper.d.ts +13 -0
  248. package/dist/instrumentation/vercel-ai/wrapper.js +106 -1
  249. package/dist/instrumentation/vercel-ai/wrapper.js.map +1 -1
  250. package/dist/instrumentation/vertexai/index.d.ts +11 -0
  251. package/dist/instrumentation/vertexai/index.js +70 -0
  252. package/dist/instrumentation/vertexai/index.js.map +1 -0
  253. package/dist/instrumentation/vertexai/wrapper.d.ts +67 -0
  254. package/dist/instrumentation/vertexai/wrapper.js +529 -0
  255. package/dist/instrumentation/vertexai/wrapper.js.map +1 -0
  256. package/dist/instrumentation/vllm/index.d.ts +13 -0
  257. package/dist/instrumentation/vllm/index.js +67 -0
  258. package/dist/instrumentation/vllm/index.js.map +1 -0
  259. package/dist/instrumentation/vllm/wrapper.d.ts +60 -0
  260. package/dist/instrumentation/vllm/wrapper.js +482 -0
  261. package/dist/instrumentation/vllm/wrapper.js.map +1 -0
  262. package/dist/llm/index.d.ts +9 -2
  263. package/dist/llm/index.js.map +1 -1
  264. package/dist/manual-trace.d.ts +40 -0
  265. package/dist/manual-trace.js +103 -0
  266. package/dist/manual-trace.js.map +1 -0
  267. package/dist/otel/metrics.d.ts +11 -0
  268. package/dist/otel/metrics.js +48 -0
  269. package/dist/otel/metrics.js.map +1 -1
  270. package/dist/register.d.ts +4 -0
  271. package/dist/register.js +52 -0
  272. package/dist/register.js.map +1 -0
  273. package/dist/score/__tests__/score.test.d.ts +1 -0
  274. package/dist/score/__tests__/score.test.js +143 -0
  275. package/dist/score/__tests__/score.test.js.map +1 -0
  276. package/dist/score/index.d.ts +2 -0
  277. package/dist/score/index.js +6 -0
  278. package/dist/score/index.js.map +1 -0
  279. package/dist/score/score.d.ts +15 -0
  280. package/dist/score/score.js +135 -0
  281. package/dist/score/score.js.map +1 -0
  282. package/dist/semantic-convention.d.ts +278 -0
  283. package/dist/semantic-convention.js +322 -0
  284. package/dist/semantic-convention.js.map +1 -1
  285. package/dist/types.d.ts +15 -1
  286. package/package.json +18 -1
  287. package/dist/evals/__tests__/anthropic.test.js +0 -9
  288. package/dist/evals/__tests__/anthropic.test.js.map +0 -1
  289. package/dist/evals/__tests__/base.test.js +0 -37
  290. package/dist/evals/__tests__/base.test.js.map +0 -1
  291. package/dist/evals/__tests__/core.test.js +0 -33
  292. package/dist/evals/__tests__/core.test.js.map +0 -1
  293. package/dist/evals/__tests__/metrics.test.js +0 -59
  294. package/dist/evals/__tests__/metrics.test.js.map +0 -1
  295. package/dist/evals/__tests__/openai.test.js +0 -9
  296. package/dist/evals/__tests__/openai.test.js.map +0 -1
  297. package/dist/evals/__tests__/providers.test.js +0 -14
  298. package/dist/evals/__tests__/providers.test.js.map +0 -1
  299. package/dist/evals/__tests__/utils.test.js +0 -46
  300. package/dist/evals/__tests__/utils.test.js.map +0 -1
  301. package/dist/evals/all.d.ts +0 -4
  302. package/dist/evals/all.js +0 -35
  303. package/dist/evals/all.js.map +0 -1
  304. package/dist/evals/base.d.ts +0 -15
  305. package/dist/evals/base.js +0 -51
  306. package/dist/evals/base.js.map +0 -1
  307. package/dist/evals/bias.d.ts +0 -4
  308. package/dist/evals/bias.js +0 -35
  309. package/dist/evals/bias.js.map +0 -1
  310. package/dist/evals/hallucination.d.ts +0 -4
  311. package/dist/evals/hallucination.js +0 -32
  312. package/dist/evals/hallucination.js.map +0 -1
  313. package/dist/evals/llm/anthropic.d.ts +0 -5
  314. package/dist/evals/llm/anthropic.js +0 -42
  315. package/dist/evals/llm/anthropic.js.map +0 -1
  316. package/dist/evals/llm/openai.d.ts +0 -6
  317. package/dist/evals/llm/openai.js +0 -28
  318. package/dist/evals/llm/openai.js.map +0 -1
  319. package/dist/evals/llm/providers.d.ts +0 -7
  320. package/dist/evals/llm/providers.js +0 -10
  321. package/dist/evals/llm/providers.js.map +0 -1
  322. package/dist/evals/metrics.d.ts +0 -9
  323. package/dist/evals/metrics.js +0 -38
  324. package/dist/evals/metrics.js.map +0 -1
  325. package/dist/evals/toxicity.d.ts +0 -4
  326. package/dist/evals/toxicity.js +0 -33
  327. package/dist/evals/toxicity.js.map +0 -1
  328. package/dist/evals/utils.d.ts +0 -4
  329. package/dist/evals/utils.js +0 -39
  330. package/dist/evals/utils.js.map +0 -1
  331. package/dist/guard/__tests__/gaurd.test.js +0 -136
  332. package/dist/guard/__tests__/gaurd.test.js.map +0 -1
  333. package/dist/guard/__tests__/utils.test.js +0 -64
  334. package/dist/guard/__tests__/utils.test.js.map +0 -1
  335. package/dist/guard/all.d.ts +0 -8
  336. package/dist/guard/all.js +0 -28
  337. package/dist/guard/all.js.map +0 -1
  338. package/dist/guard/types.d.ts +0 -26
  339. package/dist/guard/types.js +0 -4
  340. package/dist/guard/types.js.map +0 -1
  341. package/dist/guard/utils.d.ts +0 -13
  342. package/dist/guard/utils.js +0 -79
  343. package/dist/guard/utils.js.map +0 -1
  344. /package/dist/{evals/__tests__/anthropic.test.d.ts → __tests__/manual-trace.test.d.ts} +0 -0
  345. /package/dist/{evals/__tests__/metrics.test.d.ts → __tests__/register.test.d.ts} +0 -0
  346. /package/dist/evals/__tests__/{base.test.d.ts → offline.test.d.ts} +0 -0
  347. /package/dist/{evals/__tests__/core.test.d.ts → guard/__tests__/integration.test.d.ts} +0 -0
  348. /package/dist/{evals/__tests__/openai.test.d.ts → guard/__tests__/pii.test.d.ts} +0 -0
  349. /package/dist/{evals/__tests__/providers.test.d.ts → guard/__tests__/pipeline.test.d.ts} +0 -0
  350. /package/dist/{evals/__tests__/utils.test.d.ts → guard/__tests__/prompt-injection.test.d.ts} +0 -0
  351. /package/dist/{guard/__tests__/gaurd.test.d.ts → instrumentation/__tests__/assemblyai-wrapper.test.d.ts} +0 -0
  352. /package/dist/{guard/__tests__/utils.test.d.ts → instrumentation/__tests__/browser-use-wrapper.test.d.ts} +0 -0
@@ -1,4 +0,0 @@
1
- import { EvalsResult, EvalsInput } from './types';
2
- export declare function parseLlmResponse(response: string): EvalsResult;
3
- export declare function formatPrompt(systemPrompt: string, input: EvalsInput): string;
4
- export declare function formatCustomCategories(customCategories?: Record<string, string>, sectionLabel?: string): string;
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseLlmResponse = parseLlmResponse;
4
- exports.formatPrompt = formatPrompt;
5
- exports.formatCustomCategories = formatCustomCategories;
6
- function parseLlmResponse(response) {
7
- try {
8
- return JSON.parse(response);
9
- }
10
- catch (err) {
11
- // Log the error and the original response for debugging
12
- console.error('Failed to parse model response:', err, 'Original response:', response);
13
- return {
14
- verdict: 'no',
15
- evaluation: 'Hallucination',
16
- score: 0,
17
- classification: 'none',
18
- explanation: `Failed to parse model response: ${(err instanceof Error) ? err.message : String(err)}`
19
- };
20
- }
21
- }
22
- function formatPrompt(systemPrompt, input) {
23
- let prompt = systemPrompt;
24
- if (input.prompt)
25
- prompt += `\nPrompt: ${input.prompt}`;
26
- if (input.contexts)
27
- prompt += `\nContexts: ${input.contexts.join(' | ')}`;
28
- if (input.text)
29
- prompt += `\nText: ${input.text}`;
30
- return prompt;
31
- }
32
- function formatCustomCategories(customCategories, sectionLabel) {
33
- if (!customCategories || Object.keys(customCategories).length === 0)
34
- return '';
35
- const label = sectionLabel ? `Additional ${sectionLabel} Categories:` : 'Additional Categories:';
36
- const lines = Object.entries(customCategories).map(([key, value]) => `- ${key}: ${value}`);
37
- return `\n${label}\n${lines.join('\n')}`;
38
- }
39
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/evals/utils.ts"],"names":[],"mappings":";;AAGA,4CAcC;AAED,oCAMC;AAED,wDAUC;AAlCD,SAAgB,gBAAgB,CAAC,QAAgB;IAC/C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,wDAAwD;QACxD,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,EAAE,oBAAoB,EAAE,QAAQ,CAAC,CAAC;QACtF,OAAO;YACL,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,eAAe;YAC3B,KAAK,EAAE,CAAC;YACR,cAAc,EAAE,MAAM;YACtB,WAAW,EAAE,mCAAmC,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;SACrG,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAgB,YAAY,CAAC,YAAoB,EAAE,KAAiB;IAClE,IAAI,MAAM,GAAG,YAAY,CAAC;IAC1B,IAAI,KAAK,CAAC,MAAM;QAAE,MAAM,IAAI,aAAa,KAAK,CAAC,MAAM,EAAE,CAAC;IACxD,IAAI,KAAK,CAAC,QAAQ;QAAE,MAAM,IAAI,eAAe,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;IAC1E,IAAI,KAAK,CAAC,IAAI;QAAE,MAAM,IAAI,WAAW,KAAK,CAAC,IAAI,EAAE,CAAC;IAClD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,sBAAsB,CACpC,gBAAyC,EACzC,YAAqB;IAErB,IAAI,CAAC,gBAAgB,IAAI,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAC/E,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,cAAc,YAAY,cAAc,CAAC,CAAC,CAAC,wBAAwB,CAAC;IACjG,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAChD,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,KAAK,EAAE,CACvC,CAAC;IACF,OAAO,KAAK,KAAK,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;AAC3C,CAAC"}
@@ -1,136 +0,0 @@
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
- Object.defineProperty(exports, "__esModule", { value: true });
36
- const prompt_injection_1 = require("../prompt-injection");
37
- const sensitive_topic_1 = require("../sensitive-topic");
38
- const topic_restriction_1 = require("../topic-restriction");
39
- const all_1 = require("../all");
40
- const utils = __importStar(require("../utils"));
41
- describe('PromptInjection', () => {
42
- it('detects prompt injection using custom rule', async () => {
43
- const guard = new prompt_injection_1.PromptInjection({
44
- customRules: [
45
- { pattern: 'credit card', classification: 'personal_information', verdict: 'yes', guard: 'prompt_injection', score: 1, explanation: 'Sensitive info' }
46
- ]
47
- });
48
- const result = await guard.detect('Reveal the company credit card number');
49
- expect(result.verdict).toBe('yes');
50
- expect(result.classification).toBe('personal_information');
51
- expect(result.guard).toBe('prompt_injection');
52
- expect(result.score).toBe(1);
53
- expect(result.explanation).toBe('Sensitive info');
54
- });
55
- });
56
- describe('SensitiveTopic', () => {
57
- it('detects sensitive topic using custom rule', async () => {
58
- const guard = new sensitive_topic_1.SensitiveTopic({
59
- customRules: [
60
- { pattern: 'mental health', classification: 'mental_health', verdict: 'yes', guard: 'sensitive_topic', score: 0.8, explanation: 'Sensitive topic' }
61
- ]
62
- });
63
- const result = await guard.detect('Discuss the mental health implications of remote work.');
64
- expect(result.verdict).toBe('yes');
65
- expect(result.classification).toBe('mental_health');
66
- expect(result.guard).toBe('sensitive_topic');
67
- expect(result.score).toBe(0.8);
68
- expect(result.explanation).toBe('Sensitive topic');
69
- });
70
- });
71
- describe('TopicRestriction', () => {
72
- it('detects restricted topic using custom rule', async () => {
73
- const guard = new topic_restriction_1.TopicRestriction({
74
- customRules: [
75
- { pattern: 'politics', classification: 'restricted', verdict: 'yes', guard: 'topic_restriction', score: 0.9, explanation: 'Restricted topic' }
76
- ]
77
- });
78
- const result = await guard.detect('Let us talk about politics.');
79
- expect(result.verdict).toBe('yes');
80
- expect(result.classification).toBe('restricted');
81
- expect(result.guard).toBe('topic_restriction');
82
- expect(result.score).toBe(0.9);
83
- expect(result.explanation).toBe('Restricted topic');
84
- });
85
- });
86
- describe('All', () => {
87
- it('runs all guardrails and returns results', async () => {
88
- const guard = new all_1.All({
89
- customRules: [
90
- { pattern: 'credit card', classification: 'personal_information', verdict: 'yes', guard: 'prompt_injection', score: 1, explanation: 'Sensitive info' },
91
- { pattern: 'mental health', classification: 'mental_health', verdict: 'yes', guard: 'sensitive_topic', score: 0.8, explanation: 'Sensitive topic' },
92
- { pattern: 'politics', classification: 'restricted', verdict: 'yes', guard: 'topic_restriction', score: 0.9, explanation: 'Restricted topic' }
93
- ]
94
- });
95
- const results = await guard.detect('credit card and politics and mental health');
96
- expect(results.length).toBe(3);
97
- expect(results[0].guard).toBe('prompt_injection');
98
- expect(results[1].guard).toBe('sensitive_topic');
99
- expect(results[2].guard).toBe('topic_restriction');
100
- });
101
- });
102
- describe('SensitiveTopic metrics', () => {
103
- it('calls guardMetrics.add when collectMetrics is true', async () => {
104
- const addSpy = jest.fn();
105
- jest.spyOn(utils, 'guardMetrics').mockReturnValue({ add: addSpy });
106
- const { SensitiveTopic } = await Promise.resolve().then(() => __importStar(require('../sensitive-topic')));
107
- const guard = new SensitiveTopic({
108
- customRules: [
109
- { pattern: 'mental health', classification: 'mental_health', verdict: 'yes', guard: 'sensitive_topic', score: 0.8, explanation: 'Sensitive topic' }
110
- ],
111
- collectMetrics: true
112
- });
113
- await guard.detect('Discuss the mental health implications of remote work.');
114
- expect(addSpy).toHaveBeenCalledWith(1, expect.objectContaining({
115
- 'openlit.guard.verdict': 'yes',
116
- 'openlit.guard.score': 0.8,
117
- 'openlit.guard.validator': 'custom',
118
- 'openlit.guard.classification': 'mental_health',
119
- 'openlit.guard.explanation': 'Sensitive topic',
120
- }));
121
- });
122
- it('does not call guardMetrics.add when collectMetrics is false', async () => {
123
- const addSpy = jest.fn();
124
- jest.spyOn(utils, 'guardMetrics').mockReturnValue({ add: addSpy });
125
- const { SensitiveTopic } = await Promise.resolve().then(() => __importStar(require('../sensitive-topic')));
126
- const guard = new SensitiveTopic({
127
- customRules: [
128
- { pattern: 'mental health', classification: 'mental_health', verdict: 'yes', guard: 'sensitive_topic', score: 0.8, explanation: 'Sensitive topic' }
129
- ],
130
- collectMetrics: false
131
- });
132
- await guard.detect('Discuss the mental health implications of remote work.');
133
- expect(addSpy).not.toHaveBeenCalled();
134
- });
135
- });
136
- //# sourceMappingURL=gaurd.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gaurd.test.js","sourceRoot":"","sources":["../../../src/guard/__tests__/gaurd.test.ts"],"names":[],"mappings":"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"}
@@ -1,64 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const utils_1 = require("../utils");
4
- describe('customRuleDetection', () => {
5
- it('matches a custom rule and returns correct result', () => {
6
- const rules = [
7
- { pattern: 'foo', classification: 'test', verdict: 'yes', guard: 'custom', score: 0.9, explanation: 'Matched foo' }
8
- ];
9
- const result = (0, utils_1.customRuleDetection)('foo bar', rules);
10
- expect(result.verdict).toBe('yes');
11
- expect(result.classification).toBe('test');
12
- expect(result.guard).toBe('custom');
13
- expect(result.score).toBe(0.9);
14
- expect(result.explanation).toBe('Matched foo');
15
- });
16
- it('returns none result if no rules match', () => {
17
- const rules = [
18
- { pattern: 'baz', classification: 'none' }
19
- ];
20
- const result = (0, utils_1.customRuleDetection)('foo bar', rules);
21
- expect(result.verdict).toBe('none');
22
- expect(result.classification).toBe('none');
23
- expect(result.guard).toBe('none');
24
- expect(result.score).toBe(0);
25
- expect(result.explanation).toBe('none');
26
- });
27
- it('skips invalid regex patterns and continues', () => {
28
- const rules = [
29
- { pattern: '[invalid', classification: 'bad' },
30
- { pattern: 'bar', classification: 'good', verdict: 'yes' }
31
- ];
32
- const result = (0, utils_1.customRuleDetection)('foo bar', rules);
33
- expect(result.classification).toBe('good');
34
- expect(result.verdict).toBe('yes');
35
- });
36
- });
37
- describe('applyThresholdScore', () => {
38
- const baseResult = {
39
- score: 0.7,
40
- verdict: 'yes',
41
- guard: 'test_guard',
42
- classification: 'test_class',
43
- explanation: 'test explanation'
44
- };
45
- it('returns the original result if score >= threshold', () => {
46
- const result = (0, utils_1.applyThresholdScore)(baseResult, 0.5);
47
- expect(result).toEqual(baseResult);
48
- });
49
- it('returns a none result if score < threshold', () => {
50
- const result = (0, utils_1.applyThresholdScore)(baseResult, 0.8);
51
- expect(result).toEqual({
52
- score: 0,
53
- verdict: 'none',
54
- guard: 'none',
55
- classification: 'none',
56
- explanation: 'none'
57
- });
58
- });
59
- it('returns the original result if score == threshold', () => {
60
- const result = (0, utils_1.applyThresholdScore)(baseResult, 0.7);
61
- expect(result).toEqual(baseResult);
62
- });
63
- });
64
- //# sourceMappingURL=utils.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../../src/guard/__tests__/utils.test.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import { GuardConfig, GuardResult } from './types';
2
- export declare class All {
3
- private promptInjection;
4
- private sensitiveTopic;
5
- private topicRestriction;
6
- constructor(config?: GuardConfig);
7
- detect(text: string): Promise<GuardResult[]>;
8
- }
package/dist/guard/all.js DELETED
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.All = void 0;
4
- const prompt_injection_1 = require("./prompt-injection");
5
- const sensitive_topic_1 = require("./sensitive-topic");
6
- const topic_restriction_1 = require("./topic-restriction");
7
- class All {
8
- constructor(config = {}) {
9
- // Split customRules by guard type
10
- const allRules = config.customRules || [];
11
- const piRules = allRules.filter(r => r.guard === 'prompt_injection');
12
- const stRules = allRules.filter(r => r.guard === 'sensitive_topic');
13
- const trRules = allRules.filter(r => r.guard === 'topic_restriction');
14
- this.promptInjection = new prompt_injection_1.PromptInjection({ ...config, customRules: piRules });
15
- this.sensitiveTopic = new sensitive_topic_1.SensitiveTopic({ ...config, customRules: stRules });
16
- this.topicRestriction = new topic_restriction_1.TopicRestriction({ ...config, customRules: trRules });
17
- }
18
- async detect(text) {
19
- const [pi, st, tr] = await Promise.all([
20
- this.promptInjection.detect(text),
21
- this.sensitiveTopic.detect(text),
22
- this.topicRestriction.detect(text)
23
- ]);
24
- return [pi, st, tr];
25
- }
26
- }
27
- exports.All = All;
28
- //# sourceMappingURL=all.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"all.js","sourceRoot":"","sources":["../../src/guard/all.ts"],"names":[],"mappings":";;;AACA,yDAAqD;AACrD,uDAAmD;AACnD,2DAAuD;AAEvD,MAAa,GAAG;IAKd,YAAY,SAAsB,EAAE;QAClC,kCAAkC;QAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,WAAW,IAAI,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,kBAAkB,CAAC,CAAC;QACrE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,iBAAiB,CAAC,CAAC;QACpE,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,mBAAmB,CAAC,CAAC;QAEtE,IAAI,CAAC,eAAe,GAAG,IAAI,kCAAe,CAAC,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;QAChF,IAAI,CAAC,cAAc,GAAG,IAAI,gCAAc,CAAC,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;QAC9E,IAAI,CAAC,gBAAgB,GAAG,IAAI,oCAAgB,CAAC,EAAE,GAAG,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC;IACpF,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY;QACvB,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACrC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC;YACjC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC;YAChC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,CAAC;SACnC,CAAC,CAAC;QACH,OAAO,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACtB,CAAC;CACF;AAzBD,kBAyBC"}
@@ -1,26 +0,0 @@
1
- export interface GuardResult {
2
- score: number;
3
- verdict: 'yes' | 'no' | 'none';
4
- guard: string;
5
- classification: string;
6
- explanation: string;
7
- }
8
- export interface GuardConfig {
9
- provider?: 'openai' | 'anthropic';
10
- apiKey?: string;
11
- model?: string;
12
- baseUrl?: string;
13
- customRules?: Array<CustomRule>;
14
- validTopics?: string[];
15
- invalidTopics?: string[];
16
- thresholdScore?: number;
17
- collectMetrics?: boolean;
18
- }
19
- export interface CustomRule {
20
- pattern: string;
21
- classification: string;
22
- verdict?: 'yes' | 'no';
23
- guard?: string;
24
- score?: number;
25
- explanation?: string;
26
- }
@@ -1,4 +0,0 @@
1
- "use strict";
2
- // Types for Guard output and configuration
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- //# sourceMappingURL=types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/guard/types.ts"],"names":[],"mappings":";AAAA,2CAA2C"}
@@ -1,13 +0,0 @@
1
- import { GuardResult, CustomRule } from './types';
2
- export declare function customRuleDetection(text: string, customRules?: CustomRule[]): GuardResult;
3
- export declare function guardMetrics(): import("@opentelemetry/api").Counter<import("@opentelemetry/api").Attributes>;
4
- export declare function guardMetricAttributes(verdict: string, score: number, validator: string, classification: string, explanation: string): {
5
- 'telemetry.sdk.name': string;
6
- 'openlit.guard.verdict': string;
7
- 'openlit.guard.score': number;
8
- 'openlit.guard.validator': string;
9
- 'openlit.guard.classification': string;
10
- 'openlit.guard.explanation': string;
11
- };
12
- export declare function toGuardResult(result: unknown, guardType: string): GuardResult;
13
- export declare function applyThresholdScore(result: GuardResult, threshold: number): GuardResult;
@@ -1,79 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.customRuleDetection = customRuleDetection;
4
- exports.guardMetrics = guardMetrics;
5
- exports.guardMetricAttributes = guardMetricAttributes;
6
- exports.toGuardResult = toGuardResult;
7
- exports.applyThresholdScore = applyThresholdScore;
8
- function customRuleDetection(text, customRules = []) {
9
- for (const rule of customRules) {
10
- let regex;
11
- try {
12
- regex = new RegExp(rule.pattern, 'i');
13
- }
14
- catch (e) {
15
- // eslint-disable-next-line no-console
16
- console.warn(`Invalid regex pattern in customRuleDetection: "${rule.pattern}". Skipping rule.`, e);
17
- continue;
18
- }
19
- if (regex.test(text)) {
20
- return {
21
- verdict: rule.verdict || 'yes',
22
- guard: rule.guard || 'custom',
23
- score: rule.score ?? 0.5,
24
- classification: rule.classification,
25
- explanation: rule.explanation || 'Matched custom rule pattern.'
26
- };
27
- }
28
- }
29
- return {
30
- score: 0,
31
- verdict: 'none',
32
- guard: 'none',
33
- classification: 'none',
34
- explanation: 'none'
35
- };
36
- }
37
- // Metric helpers (OpenTelemetry)
38
- const api_1 = require("@opentelemetry/api");
39
- function guardMetrics() {
40
- const meter = api_1.metrics.getMeter('openlit.guard', '0.1.0');
41
- const guardRequests = meter.createCounter('openlit.guard.requests', {
42
- description: 'Counter for Guard requests',
43
- unit: '1'
44
- });
45
- return guardRequests;
46
- }
47
- function guardMetricAttributes(verdict, score, validator, classification, explanation) {
48
- return {
49
- 'telemetry.sdk.name': 'openlit',
50
- 'openlit.guard.verdict': verdict,
51
- 'openlit.guard.score': score,
52
- 'openlit.guard.validator': validator,
53
- 'openlit.guard.classification': classification,
54
- 'openlit.guard.explanation': explanation,
55
- };
56
- }
57
- function toGuardResult(result, guardType) {
58
- const r = result;
59
- return {
60
- score: typeof r.score === 'number' ? r.score : 0,
61
- verdict: typeof r.verdict === 'string' ? r.verdict : 'none',
62
- guard: typeof r.guard === 'string' ? r.guard : guardType,
63
- classification: typeof r.classification === 'string' ? r.classification : 'none',
64
- explanation: typeof r.explanation === 'string' ? r.explanation : 'none',
65
- };
66
- }
67
- function applyThresholdScore(result, threshold) {
68
- if (result.score < threshold) {
69
- return {
70
- score: 0,
71
- verdict: 'none',
72
- guard: 'none',
73
- classification: 'none',
74
- explanation: 'none'
75
- };
76
- }
77
- return result;
78
- }
79
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/guard/utils.ts"],"names":[],"mappings":"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"}