@inspectr/mcplab-core 1.22.0 → 1.22.2
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/config-values.d.ts +7 -0
- package/dist/config-values.d.ts.map +1 -0
- package/dist/config-values.js +15 -0
- package/dist/config-values.js.map +1 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +3 -0
- package/dist/config.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp.d.ts +10 -0
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +41 -20
- package/dist/mcp.js.map +1 -1
- package/dist/runner.d.ts.map +1 -1
- package/dist/runner.js +8 -2
- package/dist/runner.js.map +1 -1
- package/dist/scenario-builder.d.ts +2 -1
- package/dist/scenario-builder.d.ts.map +1 -1
- package/dist/scenario-builder.js +44 -21
- package/dist/scenario-builder.js.map +1 -1
- package/dist/test-case-store.d.ts +2 -1
- package/dist/test-case-store.d.ts.map +1 -1
- package/dist/test-case-store.js +2 -0
- package/dist/test-case-store.js.map +1 -1
- package/dist/types.d.ts +306 -331
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { SourceScenario } from './types.js';
|
|
1
|
+
import type { EvalRules, SourceScenario } from './types.js';
|
|
2
2
|
export type ScenarioBuildInput = {
|
|
3
3
|
id?: string;
|
|
4
4
|
name?: string;
|
|
@@ -9,6 +9,7 @@ export type ScenarioBuildInput = {
|
|
|
9
9
|
forbidden_tools?: string[];
|
|
10
10
|
tool_sequence?: string[];
|
|
11
11
|
response_regex_patterns?: string[];
|
|
12
|
+
eval?: EvalRules;
|
|
12
13
|
extract_rules?: Array<{
|
|
13
14
|
name: string;
|
|
14
15
|
regex: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenario-builder.d.ts","sourceRoot":"","sources":["../src/scenario-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"scenario-builder.d.ts","sourceRoot":"","sources":["../src/scenario-builder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;IACnC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,aAAa,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACxD,CAAC;AAEF,qFAAqF;AACrF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,kBAAkB,GAAG,cAAc,CA8B5E"}
|
package/dist/scenario-builder.js
CHANGED
|
@@ -7,27 +7,12 @@ export function buildScenarioEntry(input) {
|
|
|
7
7
|
const forbidden = unique(input.forbidden_tools);
|
|
8
8
|
const sequence = unique(input.tool_sequence);
|
|
9
9
|
const patterns = unique(input.response_regex_patterns);
|
|
10
|
-
const evalRules =
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
...(forbidden.length ? { forbidden_tools: forbidden } : {})
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
: {}),
|
|
20
|
-
...(sequence.length ? { tool_sequence: sequence } : {}),
|
|
21
|
-
...(patterns.length
|
|
22
|
-
? {
|
|
23
|
-
response_assertions: patterns.map((pattern) => ({
|
|
24
|
-
type: 'regex',
|
|
25
|
-
pattern
|
|
26
|
-
}))
|
|
27
|
-
}
|
|
28
|
-
: {})
|
|
29
|
-
}
|
|
30
|
-
: undefined;
|
|
10
|
+
const evalRules = mergeEvalRules(input.eval, {
|
|
11
|
+
required,
|
|
12
|
+
forbidden,
|
|
13
|
+
sequence,
|
|
14
|
+
patterns
|
|
15
|
+
});
|
|
31
16
|
return {
|
|
32
17
|
id,
|
|
33
18
|
...(input.name?.trim() ? { name: input.name.trim() } : {}),
|
|
@@ -46,6 +31,44 @@ export function buildScenarioEntry(input) {
|
|
|
46
31
|
: {})
|
|
47
32
|
};
|
|
48
33
|
}
|
|
34
|
+
function mergeEvalRules(canonical, convenience) {
|
|
35
|
+
const hasConvenience = convenience.required.length > 0 ||
|
|
36
|
+
convenience.forbidden.length > 0 ||
|
|
37
|
+
convenience.sequence.length > 0 ||
|
|
38
|
+
convenience.patterns.length > 0;
|
|
39
|
+
if (!canonical && !hasConvenience)
|
|
40
|
+
return undefined;
|
|
41
|
+
const canonicalConstraints = canonical?.tool_constraints;
|
|
42
|
+
if (convenience.required.length && canonicalConstraints?.required_tools?.length) {
|
|
43
|
+
throw new Error('Provide required_tools either as a shorthand field or in eval.tool_constraints, not both.');
|
|
44
|
+
}
|
|
45
|
+
if (convenience.forbidden.length && canonicalConstraints?.forbidden_tools?.length) {
|
|
46
|
+
throw new Error('Provide forbidden_tools either as a shorthand field or in eval.tool_constraints, not both.');
|
|
47
|
+
}
|
|
48
|
+
if (convenience.sequence.length && canonical?.tool_sequence?.length) {
|
|
49
|
+
throw new Error('Provide tool_sequence either as a shorthand field or in eval, not both.');
|
|
50
|
+
}
|
|
51
|
+
if (convenience.patterns.length && canonical?.response_assertions?.length) {
|
|
52
|
+
throw new Error('Provide response_regex_patterns either as a shorthand field or in eval.response_assertions, not both.');
|
|
53
|
+
}
|
|
54
|
+
const toolConstraints = convenience.required.length || convenience.forbidden.length || canonicalConstraints
|
|
55
|
+
? {
|
|
56
|
+
...(canonicalConstraints ?? {}),
|
|
57
|
+
...(convenience.required.length ? { required_tools: convenience.required } : {}),
|
|
58
|
+
...(convenience.forbidden.length ? { forbidden_tools: convenience.forbidden } : {})
|
|
59
|
+
}
|
|
60
|
+
: undefined;
|
|
61
|
+
const responseAssertions = convenience.patterns.length
|
|
62
|
+
? convenience.patterns.map((pattern) => ({ type: 'regex', pattern }))
|
|
63
|
+
: canonical?.response_assertions;
|
|
64
|
+
const merged = {
|
|
65
|
+
...(canonical ?? {}),
|
|
66
|
+
...(toolConstraints ? { tool_constraints: toolConstraints } : {}),
|
|
67
|
+
...(convenience.sequence.length ? { tool_sequence: convenience.sequence } : {}),
|
|
68
|
+
...(responseAssertions ? { response_assertions: responseAssertions } : {})
|
|
69
|
+
};
|
|
70
|
+
return Object.keys(merged).length > 0 ? merged : undefined;
|
|
71
|
+
}
|
|
49
72
|
function unique(values) {
|
|
50
73
|
return [...new Set((values ?? []).map((value) => value.trim()).filter(Boolean))];
|
|
51
74
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scenario-builder.js","sourceRoot":"","sources":["../src/scenario-builder.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scenario-builder.js","sourceRoot":"","sources":["../src/scenario-builder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { SourceScenario } from './types.js';
|
|
1
|
+
import type { EvalRules, SourceScenario } from './types.js';
|
|
2
2
|
export type TestCaseCreateInput = {
|
|
3
3
|
id: string;
|
|
4
4
|
name?: string;
|
|
@@ -8,6 +8,7 @@ export type TestCaseCreateInput = {
|
|
|
8
8
|
forbiddenTools?: string[];
|
|
9
9
|
toolSequence?: string[];
|
|
10
10
|
responseRegexPatterns?: string[];
|
|
11
|
+
eval?: EvalRules;
|
|
11
12
|
extractRules?: Array<{
|
|
12
13
|
name: string;
|
|
13
14
|
regex: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-case-store.d.ts","sourceRoot":"","sources":["../src/test-case-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"test-case-store.d.ts","sourceRoot":"","sources":["../src/test-case-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAG5D,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,YAAY,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACvD,CAAC;AACF,MAAM,MAAM,mBAAmB,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,cAAc,CAAA;CAAE,CAAC;AACzF,MAAM,MAAM,mBAAmB,GAAG,mBAAmB,CAAC;AAEtD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjC,QAAQ,EAAE,mBAAmB,CAAC;CAC/B,GAAG,mBAAmB,CA0CtB;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,mBAAmB,CAatB;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IACzC,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,mBAAmB,CAAC;CAC/B,GAAG,mBAAmB,CAiCtB"}
|
package/dist/test-case-store.js
CHANGED
|
@@ -37,6 +37,7 @@ export function createTestCaseFile(params) {
|
|
|
37
37
|
forbidden_tools: input.forbiddenTools,
|
|
38
38
|
tool_sequence: input.toolSequence,
|
|
39
39
|
response_regex_patterns: input.responseRegexPatterns,
|
|
40
|
+
eval: input.eval,
|
|
40
41
|
extract_rules: input.extractRules
|
|
41
42
|
});
|
|
42
43
|
try {
|
|
@@ -93,6 +94,7 @@ export function updateTestCaseFile(params) {
|
|
|
93
94
|
forbidden_tools: input.forbiddenTools,
|
|
94
95
|
tool_sequence: input.toolSequence,
|
|
95
96
|
response_regex_patterns: input.responseRegexPatterns,
|
|
97
|
+
eval: input.eval,
|
|
96
98
|
extract_rules: input.extractRules
|
|
97
99
|
});
|
|
98
100
|
const librariesDir = resolve(params.librariesDir);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-case-store.js","sourceRoot":"","sources":["../src/test-case-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC1F,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,MAAM,CAAC;AAEtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"test-case-store.js","sourceRoot":"","sources":["../src/test-case-store.ts"],"names":[],"mappings":"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"}
|