@inspectr/mcplab-core 1.17.0 → 1.18.1

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.
package/dist/eval.js CHANGED
@@ -1,48 +1,193 @@
1
1
  import { JSONPath } from 'jsonpath-plus';
2
+ import { isAbortError } from './abort.js';
3
+ export function buildNotEvaluatedCheckResults(evalRules) {
4
+ if (!evalRules)
5
+ return [];
6
+ const results = [];
7
+ for (const rule of buildToolConstraintCheckResults(evalRules.tool_constraints ?? {})) {
8
+ results.push({
9
+ type: rule.type,
10
+ label: rule.label,
11
+ status: 'not_evaluated',
12
+ reason: undefined
13
+ });
14
+ }
15
+ const hasSequence = Boolean(evalRules.tool_sequence?.allow?.length);
16
+ if (hasSequence) {
17
+ results.push({
18
+ type: 'tool_sequence',
19
+ label: 'Allowed tool sequence',
20
+ status: 'not_evaluated',
21
+ metadata: { actual: [], allowed: evalRules.tool_sequence?.allow ?? [] }
22
+ });
23
+ }
24
+ for (const rule of (evalRules.response_assertions ?? []).map(toCheckResultTemplateForResponseAssertion)) {
25
+ results.push({ ...rule, status: 'not_evaluated', reason: undefined });
26
+ }
27
+ for (const assertion of evalRules.agent_assertions ?? []) {
28
+ results.push({
29
+ type: 'agent_check',
30
+ label: assertion.label,
31
+ status: 'not_evaluated'
32
+ });
33
+ }
34
+ return results;
35
+ }
2
36
  export function evaluateScenario(finalText, toolSequence, evalRules) {
3
37
  const failures = [];
38
+ const check_results = [];
4
39
  if (evalRules?.tool_constraints) {
5
- failures.push(...evaluateToolConstraints(toolSequence, evalRules.tool_constraints));
40
+ const results = evaluateToolConstraints(toolSequence, evalRules.tool_constraints);
41
+ failures.push(...results.failures);
42
+ check_results.push(...results.check_results);
6
43
  }
7
44
  if (evalRules?.tool_sequence?.allow?.length) {
8
- failures.push(...evaluateToolSequence(toolSequence, evalRules.tool_sequence.allow));
45
+ const results = evaluateToolSequence(toolSequence, evalRules.tool_sequence.allow);
46
+ failures.push(...results.failures);
47
+ check_results.push(...results.check_results);
9
48
  }
10
49
  if (evalRules?.response_assertions?.length) {
11
- failures.push(...evaluateResponseAssertions(finalText, evalRules.response_assertions));
50
+ const results = evaluateResponseAssertions(finalText, evalRules.response_assertions);
51
+ failures.push(...results.failures);
52
+ check_results.push(...results.check_results);
12
53
  }
13
- return { pass: failures.length === 0, failures };
54
+ return { pass: failures.length === 0, failures, check_results };
14
55
  }
15
- function evaluateToolConstraints(toolSequence, constraints) {
16
- const failures = [];
17
- const unique = new Set(toolSequence);
18
- if (constraints.forbidden_tools) {
19
- for (const tool of constraints.forbidden_tools) {
20
- if (unique.has(tool)) {
21
- failures.push(`Forbidden tool used: ${tool}`);
22
- }
56
+ export async function evaluateScenarioWithAgentChecks(finalText, toolSequence, evalRules, options) {
57
+ const base = evaluateScenario(finalText, toolSequence, evalRules);
58
+ const failures = [...base.failures];
59
+ const check_results = [...base.check_results];
60
+ const agentAssertions = evalRules?.agent_assertions ?? [];
61
+ if (agentAssertions.length === 0) {
62
+ return { pass: failures.length === 0, failures, check_results };
63
+ }
64
+ if (!options?.judgeAgentAssertions) {
65
+ for (const assertion of agentAssertions) {
66
+ const reason = `Agent check could not run: no judge configured for "${assertion.label}"`;
67
+ failures.push(reason);
68
+ check_results.push({
69
+ type: 'agent_check',
70
+ label: assertion.label,
71
+ status: 'failed',
72
+ reason
73
+ });
23
74
  }
75
+ return { pass: failures.length === 0, failures, check_results };
24
76
  }
25
- if (constraints.required_tools) {
26
- for (const tool of constraints.required_tools) {
27
- if (!unique.has(tool)) {
28
- failures.push(`Required tool not used: ${tool}`);
77
+ try {
78
+ const cfg = evalRules?.agent_context;
79
+ const builtContext = cfg
80
+ ? {
81
+ ...(cfg.include_prompt && options.scenarioPrompt != null && options.scenarioPrompt !== ''
82
+ ? { scenario_prompt: options.scenarioPrompt }
83
+ : {}),
84
+ ...(cfg.include_tool_sequence ? { tool_sequence: toolSequence } : {})
85
+ }
86
+ : {};
87
+ const context = Object.keys(builtContext).length > 0 ? builtContext : undefined;
88
+ const judgedResults = await options.judgeAgentAssertions({
89
+ assertions: agentAssertions,
90
+ context
91
+ });
92
+ for (const [index, assertion] of agentAssertions.entries()) {
93
+ const judged = judgedResults[index];
94
+ if (!judged) {
95
+ const reason = `Judge did not return a result for "${assertion.label}"`;
96
+ failures.push(reason);
97
+ check_results.push({
98
+ type: 'agent_check',
99
+ label: assertion.label,
100
+ status: 'failed',
101
+ reason
102
+ });
103
+ continue;
29
104
  }
105
+ if (!judged.pass)
106
+ failures.push(judged.reason);
107
+ check_results.push({
108
+ type: 'agent_check',
109
+ label: assertion.label,
110
+ status: judged.pass ? 'passed' : 'failed',
111
+ reason: judged.reason,
112
+ ...(judged.metadata ? { metadata: judged.metadata } : {})
113
+ });
114
+ }
115
+ }
116
+ catch (error) {
117
+ if (isAbortError(error))
118
+ throw error;
119
+ const reason = `Agent check failed: ${error instanceof Error ? error.message : String(error)}`;
120
+ for (const assertion of agentAssertions) {
121
+ failures.push(reason);
122
+ check_results.push({
123
+ type: 'agent_check',
124
+ label: assertion.label,
125
+ status: 'failed',
126
+ reason
127
+ });
30
128
  }
31
129
  }
32
- return failures;
130
+ return { pass: failures.length === 0, failures, check_results };
131
+ }
132
+ function evaluateToolConstraints(toolSequence, constraints) {
133
+ const failures = [];
134
+ const unique = new Set(toolSequence);
135
+ const check_results = buildToolConstraintCheckResults(constraints).map((template) => {
136
+ const reason = template.type === 'forbidden_tool'
137
+ ? unique.has(template.tool)
138
+ ? `Forbidden tool used: ${template.tool}`
139
+ : undefined
140
+ : !unique.has(template.tool)
141
+ ? `Required tool not used: ${template.tool}`
142
+ : undefined;
143
+ if (reason)
144
+ failures.push(reason);
145
+ return {
146
+ type: template.type,
147
+ label: template.label,
148
+ status: reason ? 'failed' : 'passed',
149
+ reason
150
+ };
151
+ });
152
+ return { failures, check_results };
33
153
  }
34
154
  function evaluateToolSequence(actual, allowed) {
35
155
  const actualKey = JSON.stringify(actual);
36
156
  const allowedKeys = new Set(allowed.map((seq) => JSON.stringify(seq)));
37
157
  if (!allowedKeys.has(actualKey)) {
38
- return ['Tool sequence did not match any allowed sequence'];
158
+ const reason = 'Tool sequence did not match any allowed sequence';
159
+ return {
160
+ failures: [reason],
161
+ check_results: [
162
+ {
163
+ type: 'tool_sequence',
164
+ label: 'Allowed tool sequence',
165
+ status: 'failed',
166
+ reason,
167
+ metadata: { actual, allowed }
168
+ }
169
+ ]
170
+ };
39
171
  }
40
- return [];
172
+ return {
173
+ failures: [],
174
+ check_results: [
175
+ {
176
+ type: 'tool_sequence',
177
+ label: 'Allowed tool sequence',
178
+ status: 'passed',
179
+ metadata: { actual, allowed }
180
+ }
181
+ ]
182
+ };
41
183
  }
42
184
  function evaluateResponseAssertions(text, assertions) {
43
185
  const failures = [];
186
+ const check_results = [];
44
187
  const normalizedText = text.toLowerCase();
45
188
  for (const assertion of assertions) {
189
+ let reason;
190
+ const template = toCheckResultTemplateForResponseAssertion(assertion);
46
191
  if (assertion.type === 'regex') {
47
192
  try {
48
193
  // Default text pattern checks to case-insensitive to reduce brittle LLM-output casing failures.
@@ -51,36 +196,36 @@ function evaluateResponseAssertions(text, assertions) {
51
196
  const sanitized = assertion.pattern.replace(/^\(\?[imsx]+\)/, '');
52
197
  const re = new RegExp(sanitized, 'i');
53
198
  if (!re.test(text)) {
54
- failures.push(`Regex assertion failed: ${assertion.pattern}`);
199
+ reason = `Regex assertion failed: ${assertion.pattern}`;
55
200
  }
56
201
  }
57
202
  catch (err) {
58
- failures.push(`Invalid regex: ${assertion.pattern}`);
203
+ reason = `Invalid regex: ${assertion.pattern}`;
59
204
  }
60
205
  }
61
206
  if (assertion.type === 'contains') {
62
207
  if (!normalizedText.includes(assertion.value.toLowerCase())) {
63
- failures.push(`Contains assertion failed: ${assertion.value}`);
208
+ reason = `Contains assertion failed: ${assertion.value}`;
64
209
  }
65
210
  }
66
211
  if (assertion.type === 'not_contains') {
67
212
  if (normalizedText.includes(assertion.value.toLowerCase())) {
68
- failures.push(`Not-contains assertion failed: ${assertion.value}`);
213
+ reason = `Not-contains assertion failed: ${assertion.value}`;
69
214
  }
70
215
  }
71
216
  if (assertion.type === 'starts_with') {
72
217
  if (!normalizedText.startsWith(assertion.value.toLowerCase())) {
73
- failures.push(`Starts-with assertion failed: ${assertion.value}`);
218
+ reason = `Starts-with assertion failed: ${assertion.value}`;
74
219
  }
75
220
  }
76
221
  if (assertion.type === 'ends_with') {
77
222
  if (!normalizedText.endsWith(assertion.value.toLowerCase())) {
78
- failures.push(`Ends-with assertion failed: ${assertion.value}`);
223
+ reason = `Ends-with assertion failed: ${assertion.value}`;
79
224
  }
80
225
  }
81
226
  if (assertion.type === 'equals') {
82
227
  if (normalizedText !== assertion.value.toLowerCase()) {
83
- failures.push(`Equals assertion failed: ${assertion.value}`);
228
+ reason = `Equals assertion failed: ${assertion.value}`;
84
229
  }
85
230
  }
86
231
  if (assertion.type === 'jsonpath' ||
@@ -91,27 +236,32 @@ function evaluateResponseAssertions(text, assertions) {
91
236
  json = JSON.parse(text);
92
237
  }
93
238
  catch {
94
- failures.push(`JSONPath assertion failed: invalid JSON for path ${assertion.path}`);
239
+ reason = `JSONPath assertion failed: invalid JSON for path ${assertion.path}`;
240
+ failures.push(reason);
241
+ check_results.push({ ...template, status: 'failed', reason });
95
242
  continue;
96
243
  }
97
244
  const result = JSONPath({ path: assertion.path, json });
98
245
  if (assertion.type === 'jsonpath' && assertion.equals !== undefined) {
99
246
  const matched = result.some((value) => value === assertion.equals);
100
247
  if (!matched) {
101
- failures.push(`JSONPath equals assertion failed: ${assertion.path}`);
248
+ reason = `JSONPath equals assertion failed: ${assertion.path}`;
102
249
  }
103
250
  }
104
251
  else if (assertion.type === 'jsonpath_not_exists') {
105
252
  if (result && result.length > 0) {
106
- failures.push(`JSONPath not-exists assertion failed: ${assertion.path}`);
253
+ reason = `JSONPath not-exists assertion failed: ${assertion.path}`;
107
254
  }
108
255
  }
109
256
  else if (!result || result.length === 0) {
110
- failures.push(`JSONPath assertion failed: ${assertion.path}`);
257
+ reason = `JSONPath assertion failed: ${assertion.path}`;
111
258
  }
112
259
  }
260
+ if (reason)
261
+ failures.push(reason);
262
+ check_results.push({ ...template, status: reason ? 'failed' : 'passed', reason });
113
263
  }
114
- return failures;
264
+ return { failures, check_results };
115
265
  }
116
266
  export function extractValues(text, extractRules = []) {
117
267
  const extracted = {};
@@ -144,4 +294,114 @@ function coerceValue(value) {
144
294
  }
145
295
  return value;
146
296
  }
297
+ function toUiRuleType(assertionType) {
298
+ switch (assertionType) {
299
+ case 'regex':
300
+ return 'response_regex';
301
+ case 'contains':
302
+ return 'response_contains';
303
+ case 'not_contains':
304
+ return 'response_not_contains';
305
+ case 'starts_with':
306
+ return 'response_starts_with';
307
+ case 'ends_with':
308
+ return 'response_ends_with';
309
+ case 'equals':
310
+ return 'response_equals';
311
+ case 'jsonpath':
312
+ return 'response_jsonpath';
313
+ case 'jsonpath_exists':
314
+ return 'response_jsonpath_exists';
315
+ case 'jsonpath_not_exists':
316
+ return 'response_jsonpath_not_exists';
317
+ default:
318
+ return assertNever(assertionType);
319
+ }
320
+ }
321
+ function assertNever(value) {
322
+ throw new Error(`Unhandled response assertion type: ${String(value)}`);
323
+ }
324
+ function buildToolConstraintCheckResults(constraints) {
325
+ const results = [];
326
+ for (const tool of constraints.forbidden_tools ?? []) {
327
+ results.push({
328
+ type: 'forbidden_tool',
329
+ tool,
330
+ label: `Forbidden tool · ${tool}`
331
+ });
332
+ }
333
+ for (const tool of constraints.required_tools ?? []) {
334
+ results.push({
335
+ type: 'required_tool',
336
+ tool,
337
+ label: `Required tool · ${tool}`
338
+ });
339
+ }
340
+ return results;
341
+ }
342
+ function toCheckResultTemplateForResponseAssertion(assertion) {
343
+ if (assertion.type === 'regex') {
344
+ return {
345
+ type: toUiRuleType(assertion.type),
346
+ label: `Text matches regex · ${assertion.pattern}`,
347
+ status: 'passed'
348
+ };
349
+ }
350
+ if (assertion.type === 'contains') {
351
+ return {
352
+ type: toUiRuleType(assertion.type),
353
+ label: `Text contains · ${assertion.value}`,
354
+ status: 'passed'
355
+ };
356
+ }
357
+ if (assertion.type === 'not_contains') {
358
+ return {
359
+ type: toUiRuleType(assertion.type),
360
+ label: `Text does not contain · ${assertion.value}`,
361
+ status: 'passed'
362
+ };
363
+ }
364
+ if (assertion.type === 'starts_with') {
365
+ return {
366
+ type: toUiRuleType(assertion.type),
367
+ label: `Text starts with · ${assertion.value}`,
368
+ status: 'passed'
369
+ };
370
+ }
371
+ if (assertion.type === 'ends_with') {
372
+ return {
373
+ type: toUiRuleType(assertion.type),
374
+ label: `Text ends with · ${assertion.value}`,
375
+ status: 'passed'
376
+ };
377
+ }
378
+ if (assertion.type === 'equals') {
379
+ return {
380
+ type: toUiRuleType(assertion.type),
381
+ label: `Text equals · ${assertion.value}`,
382
+ status: 'passed'
383
+ };
384
+ }
385
+ if (assertion.type === 'jsonpath') {
386
+ return {
387
+ type: toUiRuleType(assertion.type),
388
+ label: assertion.equals !== undefined
389
+ ? `JSONPath equals · ${assertion.path} == ${String(assertion.equals)}`
390
+ : `JSONPath exists · ${assertion.path}`,
391
+ status: 'passed'
392
+ };
393
+ }
394
+ if (assertion.type === 'jsonpath_exists') {
395
+ return {
396
+ type: toUiRuleType(assertion.type),
397
+ label: `JSONPath exists · ${assertion.path}`,
398
+ status: 'passed'
399
+ };
400
+ }
401
+ return {
402
+ type: toUiRuleType(assertion.type),
403
+ label: `JSONPath not exists · ${assertion.path}`,
404
+ status: 'passed'
405
+ };
406
+ }
147
407
  //# sourceMappingURL=eval.js.map
package/dist/eval.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"eval.js","sourceRoot":"","sources":["../src/eval.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eval.js","sourceRoot":"","sources":["../src/eval.ts"],"names":[],"mappings":"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"}
package/dist/runner.d.ts CHANGED
@@ -1,4 +1,11 @@
1
- import type { ExecutableEvalConfig, ResultsJson } from './types.js';
1
+ import type {
2
+ AgentAssertion,
3
+ AgentConfig,
4
+ AgentJudgeContext,
5
+ ExecutableEvalConfig,
6
+ ResultsJson,
7
+ ExecutableScenario
8
+ } from './types.js';
2
9
  import { type AgentRunProgressEvent } from './agent.js';
3
10
  export interface RunOptions {
4
11
  runsPerScenario: number;
@@ -17,6 +24,10 @@ export interface RunOptions {
17
24
  signal?: AbortSignal;
18
25
  }
19
26
  ) => Promise<Record<string, Record<string, string>>>;
27
+ evaluationJudge?: {
28
+ name: string;
29
+ agent: AgentConfig;
30
+ };
20
31
  signal?: AbortSignal;
21
32
  onProgress?: (event: RunProgressEvent) => void | Promise<void>;
22
33
  }
@@ -78,6 +89,36 @@ export declare function runAll(
78
89
  runDir: string;
79
90
  results: ResultsJson;
80
91
  }>;
92
+ export declare function buildJudgeBatchPayload(
93
+ finalText: string,
94
+ assertions: AgentAssertion[],
95
+ context?: AgentJudgeContext
96
+ ): {
97
+ checks: {
98
+ id: string;
99
+ label: string;
100
+ prompt: string;
101
+ }[];
102
+ context?: AgentJudgeContext | undefined;
103
+ final_answer: string;
104
+ };
105
+ type JudgeBatchPayload = ReturnType<typeof buildJudgeBatchPayload>;
106
+ export declare function mapJudgeBatchResults(params: {
107
+ judgeName: string;
108
+ judgeAgent: AgentConfig;
109
+ batch: JudgeBatchPayload;
110
+ raw: string;
111
+ }): Array<{
112
+ label: string;
113
+ pass: boolean;
114
+ reason: string;
115
+ metadata?: Record<string, unknown>;
116
+ }>;
117
+ export declare function extractJudgeJson(raw: string): string;
118
+ export declare function filterScenariosForRun(
119
+ scenarios: ExecutableScenario[],
120
+ scenarioId?: string
121
+ ): ExecutableScenario[];
81
122
  export declare function createRunId(now?: Date): string;
82
123
  export declare function buildScenarioRequestId(params: {
83
124
  runId: string;
@@ -91,4 +132,5 @@ export declare function buildFallbackScenarioRequestId(params: {
91
132
  runIndex: number;
92
133
  scenarioAgent?: string;
93
134
  }): string;
135
+ export {};
94
136
  //# sourceMappingURL=runner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}