@inspectr/mcplab-core 1.17.0 → 1.18.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.
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,94 +1,107 @@
1
- import type { ExecutableEvalConfig, ResultsJson } from './types.js';
1
+ import type { AgentAssertion, AgentConfig, AgentJudgeContext, ExecutableEvalConfig, ResultsJson, ExecutableScenario } from './types.js';
2
2
  import { type AgentRunProgressEvent } from './agent.js';
3
3
  export interface RunOptions {
4
- runsPerScenario: number;
5
- scenarioId?: string;
6
- runNote?: string;
7
- configHash: string;
8
- gitCommit?: string;
9
- cliVersion: string;
10
- runsDir?: string;
11
- cwd?: string;
12
- mcpServerAuthHeaders?: Record<string, Record<string, string>>;
13
- oauthTokens?: Record<string, string>;
14
- resolveMcpServerAuthHeaders?: (
15
- serverNames: string[],
16
- options?: {
17
- signal?: AbortSignal;
18
- }
19
- ) => Promise<Record<string, Record<string, string>>>;
20
- signal?: AbortSignal;
21
- onProgress?: (event: RunProgressEvent) => void | Promise<void>;
22
- }
23
- export type RunProgressEvent =
24
- | {
25
- type: 'run_started';
26
- runId: string;
27
- totalScenarioRuns: number;
28
- runsPerScenario: number;
29
- }
30
- | {
31
- type: 'mcp_connect_started';
32
- serverCount: number;
33
- serverNames: string[];
34
- }
35
- | {
36
- type: 'mcp_connect_finished';
37
- serverCount: number;
38
- serverNames: string[];
39
- }
40
- | {
41
- type: 'scenario_run_started';
42
- scenarioId: string;
43
- agentName: string;
44
- scenarioRunIndex: number;
45
- totalScenarioRuns: number;
46
- runIndex: number;
47
- runsPerScenario: number;
48
- }
49
- | {
50
- type: 'scenario_run_finished';
51
- scenarioId: string;
52
- agentName: string;
53
- scenarioRunIndex: number;
54
- totalScenarioRuns: number;
55
- runIndex: number;
56
- runsPerScenario: number;
57
- pass: boolean;
58
- toolCallCount: number;
59
- }
60
- | {
61
- type: 'agent_progress';
62
- scenarioRunIndex: number;
63
- totalScenarioRuns: number;
64
- event: AgentRunProgressEvent;
65
- }
66
- | {
67
- type: 'run_finished';
68
- runId: string;
69
- totalScenarioRuns: number;
4
+ runsPerScenario: number;
5
+ scenarioId?: string;
6
+ runNote?: string;
7
+ configHash: string;
8
+ gitCommit?: string;
9
+ cliVersion: string;
10
+ runsDir?: string;
11
+ cwd?: string;
12
+ mcpServerAuthHeaders?: Record<string, Record<string, string>>;
13
+ oauthTokens?: Record<string, string>;
14
+ resolveMcpServerAuthHeaders?: (serverNames: string[], options?: {
15
+ signal?: AbortSignal;
16
+ }) => Promise<Record<string, Record<string, string>>>;
17
+ evaluationJudge?: {
18
+ name: string;
19
+ agent: AgentConfig;
70
20
  };
71
- export declare function buildMcpServerAuthHeaders(
72
- options: Pick<RunOptions, 'mcpServerAuthHeaders' | 'oauthTokens'>
73
- ): Record<string, Record<string, string>>;
74
- export declare function runAll(
75
- config: ExecutableEvalConfig,
76
- options: RunOptions
77
- ): Promise<{
78
- runDir: string;
79
- results: ResultsJson;
21
+ signal?: AbortSignal;
22
+ onProgress?: (event: RunProgressEvent) => void | Promise<void>;
23
+ }
24
+ export type RunProgressEvent = {
25
+ type: 'run_started';
26
+ runId: string;
27
+ totalScenarioRuns: number;
28
+ runsPerScenario: number;
29
+ } | {
30
+ type: 'mcp_connect_started';
31
+ serverCount: number;
32
+ serverNames: string[];
33
+ } | {
34
+ type: 'mcp_connect_finished';
35
+ serverCount: number;
36
+ serverNames: string[];
37
+ } | {
38
+ type: 'scenario_run_started';
39
+ scenarioId: string;
40
+ agentName: string;
41
+ scenarioRunIndex: number;
42
+ totalScenarioRuns: number;
43
+ runIndex: number;
44
+ runsPerScenario: number;
45
+ } | {
46
+ type: 'scenario_run_finished';
47
+ scenarioId: string;
48
+ agentName: string;
49
+ scenarioRunIndex: number;
50
+ totalScenarioRuns: number;
51
+ runIndex: number;
52
+ runsPerScenario: number;
53
+ pass: boolean;
54
+ toolCallCount: number;
55
+ } | {
56
+ type: 'agent_progress';
57
+ scenarioRunIndex: number;
58
+ totalScenarioRuns: number;
59
+ event: AgentRunProgressEvent;
60
+ } | {
61
+ type: 'run_finished';
62
+ runId: string;
63
+ totalScenarioRuns: number;
64
+ };
65
+ export declare function buildMcpServerAuthHeaders(options: Pick<RunOptions, 'mcpServerAuthHeaders' | 'oauthTokens'>): Record<string, Record<string, string>>;
66
+ export declare function runAll(config: ExecutableEvalConfig, options: RunOptions): Promise<{
67
+ runDir: string;
68
+ results: ResultsJson;
69
+ }>;
70
+ export declare function buildJudgeBatchPayload(finalText: string, assertions: AgentAssertion[], context?: AgentJudgeContext): {
71
+ checks: {
72
+ id: string;
73
+ label: string;
74
+ prompt: string;
75
+ }[];
76
+ context?: AgentJudgeContext | undefined;
77
+ final_answer: string;
78
+ };
79
+ type JudgeBatchPayload = ReturnType<typeof buildJudgeBatchPayload>;
80
+ export declare function mapJudgeBatchResults(params: {
81
+ judgeName: string;
82
+ judgeAgent: AgentConfig;
83
+ batch: JudgeBatchPayload;
84
+ raw: string;
85
+ }): Array<{
86
+ label: string;
87
+ pass: boolean;
88
+ reason: string;
89
+ metadata?: Record<string, unknown>;
80
90
  }>;
91
+ export declare function extractJudgeJson(raw: string): string;
92
+ export declare function filterScenariosForRun(scenarios: ExecutableScenario[], scenarioId?: string): ExecutableScenario[];
81
93
  export declare function createRunId(now?: Date): string;
82
94
  export declare function buildScenarioRequestId(params: {
83
- runId: string;
84
- scenarioId?: string;
85
- agentName?: string;
86
- scenarioExecId?: string;
87
- runIndex: number;
95
+ runId: string;
96
+ scenarioId?: string;
97
+ agentName?: string;
98
+ scenarioExecId?: string;
99
+ runIndex: number;
88
100
  }): string;
89
101
  export declare function buildFallbackScenarioRequestId(params: {
90
- runId: string;
91
- runIndex: number;
92
- scenarioAgent?: string;
102
+ runId: string;
103
+ runIndex: number;
104
+ scenarioAgent?: string;
93
105
  }): string;
94
- //# sourceMappingURL=runner.d.ts.map
106
+ export {};
107
+ //# 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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"}