@mastra/evals 0.0.0-commonjs-20250227130920

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 (95) hide show
  1. package/.turbo/turbo-build.log +37 -0
  2. package/CHANGELOG.md +777 -0
  3. package/LICENSE +44 -0
  4. package/README.md +185 -0
  5. package/dist/_tsup-dts-rollup.d.cts +764 -0
  6. package/dist/_tsup-dts-rollup.d.ts +764 -0
  7. package/dist/chunk-4VNS5WPM.js +37 -0
  8. package/dist/chunk-TXXJUIES.js +15 -0
  9. package/dist/dist-MSGH6PAG.js +17947 -0
  10. package/dist/index.cjs +19675 -0
  11. package/dist/index.d.cts +3 -0
  12. package/dist/index.d.ts +3 -0
  13. package/dist/index.js +86 -0
  14. package/dist/magic-string.es-5UDOWOAZ.js +1296 -0
  15. package/dist/metrics/judge/index.cjs +17 -0
  16. package/dist/metrics/judge/index.d.cts +1 -0
  17. package/dist/metrics/judge/index.d.ts +1 -0
  18. package/dist/metrics/judge/index.js +2 -0
  19. package/dist/metrics/llm/index.cjs +2482 -0
  20. package/dist/metrics/llm/index.d.cts +11 -0
  21. package/dist/metrics/llm/index.d.ts +11 -0
  22. package/dist/metrics/llm/index.js +2459 -0
  23. package/dist/metrics/nlp/index.cjs +202 -0
  24. package/dist/metrics/nlp/index.d.cts +5 -0
  25. package/dist/metrics/nlp/index.d.ts +5 -0
  26. package/dist/metrics/nlp/index.js +189 -0
  27. package/eslint.config.js +6 -0
  28. package/package.json +89 -0
  29. package/src/attachListeners.ts +40 -0
  30. package/src/constants.ts +1 -0
  31. package/src/evaluation.test.ts +29 -0
  32. package/src/evaluation.ts +58 -0
  33. package/src/index.ts +2 -0
  34. package/src/metrics/index.ts +3 -0
  35. package/src/metrics/judge/index.ts +14 -0
  36. package/src/metrics/llm/answer-relevancy/index.test.ts +156 -0
  37. package/src/metrics/llm/answer-relevancy/index.ts +58 -0
  38. package/src/metrics/llm/answer-relevancy/metricJudge.ts +56 -0
  39. package/src/metrics/llm/answer-relevancy/prompts.ts +214 -0
  40. package/src/metrics/llm/bias/index.test.ts +152 -0
  41. package/src/metrics/llm/bias/index.ts +52 -0
  42. package/src/metrics/llm/bias/metricJudge.ts +53 -0
  43. package/src/metrics/llm/bias/prompts.ts +109 -0
  44. package/src/metrics/llm/context-position/index.test.ts +275 -0
  45. package/src/metrics/llm/context-position/index.ts +69 -0
  46. package/src/metrics/llm/context-position/metricJudge.ts +55 -0
  47. package/src/metrics/llm/context-position/prompts.ts +135 -0
  48. package/src/metrics/llm/context-precision/index.test.ts +213 -0
  49. package/src/metrics/llm/context-precision/index.ts +68 -0
  50. package/src/metrics/llm/context-precision/metricJudge.ts +55 -0
  51. package/src/metrics/llm/context-precision/prompts.ts +139 -0
  52. package/src/metrics/llm/context-relevancy/index.test.ts +162 -0
  53. package/src/metrics/llm/context-relevancy/index.ts +59 -0
  54. package/src/metrics/llm/context-relevancy/metricJudge.ts +51 -0
  55. package/src/metrics/llm/context-relevancy/prompts.ts +111 -0
  56. package/src/metrics/llm/contextual-recall/index.test.ts +90 -0
  57. package/src/metrics/llm/contextual-recall/index.ts +56 -0
  58. package/src/metrics/llm/contextual-recall/metricJudge.ts +52 -0
  59. package/src/metrics/llm/contextual-recall/prompts.ts +82 -0
  60. package/src/metrics/llm/faithfulness/index.test.ts +254 -0
  61. package/src/metrics/llm/faithfulness/index.ts +59 -0
  62. package/src/metrics/llm/faithfulness/metricJudge.ts +62 -0
  63. package/src/metrics/llm/faithfulness/prompts.ts +166 -0
  64. package/src/metrics/llm/hallucination/index.test.ts +214 -0
  65. package/src/metrics/llm/hallucination/index.ts +59 -0
  66. package/src/metrics/llm/hallucination/metricJudge.ts +44 -0
  67. package/src/metrics/llm/hallucination/prompts.ts +143 -0
  68. package/src/metrics/llm/index.ts +11 -0
  69. package/src/metrics/llm/prompt-alignment/index.test.ts +335 -0
  70. package/src/metrics/llm/prompt-alignment/index.ts +116 -0
  71. package/src/metrics/llm/prompt-alignment/metricJudge.ts +43 -0
  72. package/src/metrics/llm/prompt-alignment/prompts.ts +224 -0
  73. package/src/metrics/llm/summarization/index.test.ts +274 -0
  74. package/src/metrics/llm/summarization/index.ts +72 -0
  75. package/src/metrics/llm/summarization/metricJudge.ts +101 -0
  76. package/src/metrics/llm/summarization/prompts.ts +252 -0
  77. package/src/metrics/llm/toxicity/index.test.ts +84 -0
  78. package/src/metrics/llm/toxicity/index.ts +54 -0
  79. package/src/metrics/llm/toxicity/metricJudge.ts +39 -0
  80. package/src/metrics/llm/toxicity/prompts.ts +87 -0
  81. package/src/metrics/llm/types.ts +7 -0
  82. package/src/metrics/llm/utils.ts +20 -0
  83. package/src/metrics/nlp/completeness/index.test.ts +98 -0
  84. package/src/metrics/nlp/completeness/index.ts +121 -0
  85. package/src/metrics/nlp/content-similarity/index.test.ts +76 -0
  86. package/src/metrics/nlp/content-similarity/index.ts +49 -0
  87. package/src/metrics/nlp/index.ts +5 -0
  88. package/src/metrics/nlp/keyword-coverage/index.test.ts +85 -0
  89. package/src/metrics/nlp/keyword-coverage/index.ts +49 -0
  90. package/src/metrics/nlp/textual-difference/index.test.ts +88 -0
  91. package/src/metrics/nlp/textual-difference/index.ts +38 -0
  92. package/src/metrics/nlp/tone/index.test.ts +100 -0
  93. package/src/metrics/nlp/tone/index.ts +55 -0
  94. package/tsconfig.json +5 -0
  95. package/vitest.config.ts +12 -0
@@ -0,0 +1,3 @@
1
+ export { evaluate_alias_1 as evaluate } from './_tsup-dts-rollup.cjs';
2
+ export { attachListeners_alias_1 as attachListeners } from './_tsup-dts-rollup.cjs';
3
+ export { globalSetup_alias_1 as globalSetup } from './_tsup-dts-rollup.cjs';
@@ -0,0 +1,3 @@
1
+ export { evaluate_alias_1 as evaluate } from './_tsup-dts-rollup.js';
2
+ export { attachListeners_alias_1 as attachListeners } from './_tsup-dts-rollup.js';
3
+ export { globalSetup_alias_1 as globalSetup } from './_tsup-dts-rollup.js';
package/dist/index.js ADDED
@@ -0,0 +1,86 @@
1
+ import './chunk-4VNS5WPM.js';
2
+ import { evaluate as evaluate$1 } from '@mastra/core';
3
+ import { registerHook, AvailableHooks } from '@mastra/core/hooks';
4
+ import { TABLE_EVALS } from '@mastra/core/storage';
5
+
6
+ // src/constants.ts
7
+ var GLOBAL_RUN_ID_ENV_KEY = "_MASTRA_GLOBAL_RUN_ID_";
8
+
9
+ // src/evaluation.ts
10
+ async function evaluate(agent, input, metric) {
11
+ const testInfo = await getCurrentTestInfo();
12
+ let globalRunId = process.env[GLOBAL_RUN_ID_ENV_KEY];
13
+ const runId = crypto.randomUUID();
14
+ const agentOutput = await agent.generate(input, {
15
+ runId
16
+ });
17
+ if (!globalRunId) {
18
+ globalRunId = process.env[GLOBAL_RUN_ID_ENV_KEY] = crypto.randomUUID();
19
+ console.warn('Global run id not set, you should run "globalSetup" from "@mastra/evals" before evaluating.');
20
+ }
21
+ const metricResult = await evaluate$1({
22
+ agentName: agent.name,
23
+ input,
24
+ metric,
25
+ output: agentOutput.text,
26
+ globalRunId,
27
+ runId,
28
+ testInfo,
29
+ instructions: agent.instructions
30
+ });
31
+ return metricResult;
32
+ }
33
+ var getCurrentTestInfo = async () => {
34
+ if (typeof expect !== "undefined" && expect.getState) {
35
+ const state = expect.getState();
36
+ return {
37
+ testName: state.currentTestName,
38
+ testPath: state.testPath
39
+ };
40
+ }
41
+ try {
42
+ const vitest = await import('./dist-MSGH6PAG.js');
43
+ if (typeof vitest !== "undefined" && vitest.expect?.getState) {
44
+ const state = vitest.expect.getState();
45
+ return {
46
+ testName: state.currentTestName,
47
+ testPath: state.testPath
48
+ };
49
+ }
50
+ } catch {
51
+ }
52
+ return void 0;
53
+ };
54
+ async function attachListeners(mastra) {
55
+ if (mastra?.storage) {
56
+ await mastra.storage.init();
57
+ }
58
+ registerHook(AvailableHooks.ON_EVALUATION, async (traceObject) => {
59
+ if (mastra?.storage) {
60
+ await mastra.storage.insert({
61
+ tableName: TABLE_EVALS,
62
+ record: {
63
+ input: traceObject.input,
64
+ output: traceObject.output,
65
+ result: JSON.stringify(traceObject.result),
66
+ agent_name: traceObject.agentName,
67
+ metric_name: traceObject.metricName,
68
+ instructions: traceObject.instructions,
69
+ test_info: traceObject.testInfo ? JSON.stringify(traceObject.testInfo) : null,
70
+ global_run_id: traceObject.globalRunId,
71
+ run_id: traceObject.runId,
72
+ created_at: (/* @__PURE__ */ new Date()).toISOString()
73
+ }
74
+ });
75
+ }
76
+ });
77
+ }
78
+ async function globalSetup() {
79
+ if (process.env[GLOBAL_RUN_ID_ENV_KEY]) {
80
+ throw new Error('Global run id already set, you should only run "GlobalSetup" once');
81
+ }
82
+ const globalRunId = crypto.randomUUID();
83
+ process.env[GLOBAL_RUN_ID_ENV_KEY] = globalRunId;
84
+ }
85
+
86
+ export { attachListeners, evaluate, globalSetup };