@salesforce/agents 1.5.1 → 1.5.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/lib/agentEvalRunner.d.ts +26 -0
- package/lib/agentEvalRunner.js +102 -0
- package/lib/agentEvalRunner.js.map +1 -0
- package/lib/evalFormatter.d.ts +44 -0
- package/lib/evalFormatter.js +267 -0
- package/lib/evalFormatter.js.map +1 -0
- package/lib/evalNormalizer.d.ts +57 -0
- package/lib/evalNormalizer.js +442 -0
- package/lib/evalNormalizer.js.map +1 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.js +22 -1
- package/lib/index.js.map +1 -1
- package/lib/yamlSpecTranslator.d.ts +20 -0
- package/lib/yamlSpecTranslator.js +234 -0
- package/lib/yamlSpecTranslator.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,442 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/*
|
|
3
|
+
* Copyright 2026, Salesforce, Inc.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.normalizePayload = normalizePayload;
|
|
19
|
+
exports.normalizeMcpShorthand = normalizeMcpShorthand;
|
|
20
|
+
exports.autoCorrectFields = autoCorrectFields;
|
|
21
|
+
exports.normalizeCamelCase = normalizeCamelCase;
|
|
22
|
+
exports.normalizeEvaluatorFields = normalizeEvaluatorFields;
|
|
23
|
+
exports.convertShorthandRefs = convertShorthandRefs;
|
|
24
|
+
exports.injectDefaults = injectDefaults;
|
|
25
|
+
exports.stripUnrecognizedFields = stripUnrecognizedFields;
|
|
26
|
+
exports.splitIntoBatches = splitIntoBatches;
|
|
27
|
+
// --- Evaluator classification ---
|
|
28
|
+
const SCORING_EVALUATORS = new Set([
|
|
29
|
+
'evaluator.text_alignment',
|
|
30
|
+
'evaluator.hallucination_detection',
|
|
31
|
+
'evaluator.citation_recall',
|
|
32
|
+
'evaluator.answer_faithfulness',
|
|
33
|
+
]);
|
|
34
|
+
const ASSERTION_EVALUATORS = new Set(['evaluator.string_assertion', 'evaluator.json_assertion']);
|
|
35
|
+
const DEFAULT_METRIC_NAMES = {
|
|
36
|
+
'evaluator.text_alignment': 'base.cosine_similarity',
|
|
37
|
+
'evaluator.hallucination_detection': 'hallucination_detection',
|
|
38
|
+
'evaluator.citation_recall': 'citation_recall',
|
|
39
|
+
'evaluator.answer_faithfulness': 'answer_faithfulness',
|
|
40
|
+
};
|
|
41
|
+
const SCORING_VALID_FIELDS = new Set([
|
|
42
|
+
'type',
|
|
43
|
+
'id',
|
|
44
|
+
'generated_output',
|
|
45
|
+
'reference_answer',
|
|
46
|
+
'metric_name',
|
|
47
|
+
'threshold',
|
|
48
|
+
]);
|
|
49
|
+
const ASSERTION_VALID_FIELDS = new Set([
|
|
50
|
+
'type',
|
|
51
|
+
'id',
|
|
52
|
+
'actual',
|
|
53
|
+
'expected',
|
|
54
|
+
'operator',
|
|
55
|
+
'threshold',
|
|
56
|
+
'json_path',
|
|
57
|
+
'json_schema',
|
|
58
|
+
'metric_name',
|
|
59
|
+
]);
|
|
60
|
+
const VALID_AGENT_FIELDS = {
|
|
61
|
+
'agent.create_session': new Set([
|
|
62
|
+
'type',
|
|
63
|
+
'id',
|
|
64
|
+
'agent_id',
|
|
65
|
+
'agent_version_id',
|
|
66
|
+
'use_agent_api',
|
|
67
|
+
'planner_id',
|
|
68
|
+
'state',
|
|
69
|
+
'setupSessionContext',
|
|
70
|
+
'context_variables',
|
|
71
|
+
]),
|
|
72
|
+
'agent.send_message': new Set(['type', 'id', 'session_id', 'utterance']),
|
|
73
|
+
'agent.get_state': new Set(['type', 'id', 'session_id']),
|
|
74
|
+
};
|
|
75
|
+
// --- Auto-correction maps ---
|
|
76
|
+
const AGENT_CORRECTIONS = {
|
|
77
|
+
agentId: 'agent_id',
|
|
78
|
+
agentVersionId: 'agent_version_id',
|
|
79
|
+
sessionId: 'session_id',
|
|
80
|
+
text: 'utterance',
|
|
81
|
+
message: 'utterance',
|
|
82
|
+
input: 'utterance',
|
|
83
|
+
prompt: 'utterance',
|
|
84
|
+
user_message: 'utterance',
|
|
85
|
+
userMessage: 'utterance',
|
|
86
|
+
};
|
|
87
|
+
const EVALUATOR_CORRECTIONS = {
|
|
88
|
+
subject: 'actual',
|
|
89
|
+
expectedValue: 'expected',
|
|
90
|
+
expected_value: 'expected',
|
|
91
|
+
actualValue: 'actual',
|
|
92
|
+
actual_value: 'actual',
|
|
93
|
+
assertionType: 'operator',
|
|
94
|
+
assertion_type: 'operator',
|
|
95
|
+
comparator: 'operator',
|
|
96
|
+
};
|
|
97
|
+
// --- camelCase alias maps for agent.create_session ---
|
|
98
|
+
const AGENT_FIELD_ALIASES = {
|
|
99
|
+
useAgentApi: 'use_agent_api',
|
|
100
|
+
plannerId: 'planner_id',
|
|
101
|
+
plannerDefinitionId: 'planner_id',
|
|
102
|
+
planner_definition_id: 'planner_id',
|
|
103
|
+
planner_version_id: 'planner_id',
|
|
104
|
+
plannerVersionId: 'planner_id',
|
|
105
|
+
};
|
|
106
|
+
// --- Scoring evaluator field aliases ---
|
|
107
|
+
const SCORING_FIELD_ALIASES = {
|
|
108
|
+
actual: 'generated_output',
|
|
109
|
+
expected: 'reference_answer',
|
|
110
|
+
actual_value: 'generated_output',
|
|
111
|
+
expected_value: 'reference_answer',
|
|
112
|
+
actual_output: 'generated_output',
|
|
113
|
+
expected_output: 'reference_answer',
|
|
114
|
+
response: 'generated_output',
|
|
115
|
+
ground_truth: 'reference_answer',
|
|
116
|
+
};
|
|
117
|
+
// --- Assertion evaluator field aliases ---
|
|
118
|
+
const ASSERTION_FIELD_ALIASES = {
|
|
119
|
+
actual_value: 'actual',
|
|
120
|
+
expected_value: 'expected',
|
|
121
|
+
generated_output: 'actual',
|
|
122
|
+
reference_answer: 'expected',
|
|
123
|
+
actual_output: 'actual',
|
|
124
|
+
expected_output: 'expected',
|
|
125
|
+
response: 'actual',
|
|
126
|
+
ground_truth: 'expected',
|
|
127
|
+
};
|
|
128
|
+
// --- MCP shorthand field mapping ---
|
|
129
|
+
// MCP uses `field: "gs1.planner_state.topic"` — map to Eval API `actual` with correct JSONPath
|
|
130
|
+
const MCP_FIELD_MAP = {
|
|
131
|
+
'planner_state.topic': 'response.planner_response.lastExecution.topic',
|
|
132
|
+
'planner_state.invokedActions': 'response.planner_response.lastExecution.invokedActions',
|
|
133
|
+
'planner_state.actionsSequence': 'response.planner_response.lastExecution.invokedActions',
|
|
134
|
+
response: 'response',
|
|
135
|
+
'response.messages': 'response',
|
|
136
|
+
};
|
|
137
|
+
// --- Main entry point ---
|
|
138
|
+
/**
|
|
139
|
+
* Apply all normalizations to a test payload.
|
|
140
|
+
* Passes run in order: mcp-shorthand -> auto-correct -> camelCase -> evaluator fields -> shorthand refs -> defaults -> strip.
|
|
141
|
+
*/
|
|
142
|
+
function normalizePayload(payload) {
|
|
143
|
+
const normalized = {
|
|
144
|
+
tests: payload.tests.map((test) => {
|
|
145
|
+
let steps = [...test.steps];
|
|
146
|
+
steps = normalizeMcpShorthand(steps);
|
|
147
|
+
steps = autoCorrectFields(steps);
|
|
148
|
+
steps = normalizeCamelCase(steps);
|
|
149
|
+
steps = normalizeEvaluatorFields(steps);
|
|
150
|
+
steps = convertShorthandRefs(steps);
|
|
151
|
+
steps = injectDefaults(steps);
|
|
152
|
+
steps = stripUnrecognizedFields(steps);
|
|
153
|
+
return { ...test, steps };
|
|
154
|
+
}),
|
|
155
|
+
};
|
|
156
|
+
return normalized;
|
|
157
|
+
}
|
|
158
|
+
// --- Individual normalization passes ---
|
|
159
|
+
/**
|
|
160
|
+
* Convert MCP shorthand format to raw Eval API format.
|
|
161
|
+
* MCP uses type="evaluator" + evaluator_type, raw API uses type="evaluator.xxx".
|
|
162
|
+
* Also maps `field` to `actual` with proper JSONPath and auto-generates missing `id` fields.
|
|
163
|
+
*/
|
|
164
|
+
function normalizeMcpShorthand(steps) {
|
|
165
|
+
let evalCounter = 0;
|
|
166
|
+
return steps.map((step) => {
|
|
167
|
+
const evaluator_type = step.evaluator_type;
|
|
168
|
+
// Only applies to MCP shorthand: type="evaluator" with evaluator_type field
|
|
169
|
+
if (step.type !== 'evaluator' || !evaluator_type)
|
|
170
|
+
return step;
|
|
171
|
+
const normalized = { ...step };
|
|
172
|
+
// Merge type: "evaluator" + evaluator_type: "xxx" → type: "evaluator.xxx"
|
|
173
|
+
normalized.type = `evaluator.${evaluator_type}`;
|
|
174
|
+
delete normalized.evaluator_type;
|
|
175
|
+
// Convert `field` to `actual` with proper shorthand ref format
|
|
176
|
+
if ('field' in normalized) {
|
|
177
|
+
if (!('actual' in normalized)) {
|
|
178
|
+
const fieldValue = normalized.field;
|
|
179
|
+
// Parse "gs1.planner_state.topic" → stepId="gs1", fieldPath="planner_state.topic"
|
|
180
|
+
const dotIdx = fieldValue.indexOf('.');
|
|
181
|
+
if (dotIdx > 0) {
|
|
182
|
+
const stepId = fieldValue.substring(0, dotIdx);
|
|
183
|
+
const fieldPath = fieldValue.substring(dotIdx + 1);
|
|
184
|
+
const mappedPath = MCP_FIELD_MAP[fieldPath] ?? fieldPath;
|
|
185
|
+
normalized.actual = `{${stepId}.${mappedPath}}`;
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
normalized.actual = fieldValue;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
delete normalized.field;
|
|
192
|
+
}
|
|
193
|
+
// Auto-generate id if missing
|
|
194
|
+
if (!normalized.id || normalized.id === '') {
|
|
195
|
+
normalized.id = `eval_${evalCounter}`;
|
|
196
|
+
evalCounter++;
|
|
197
|
+
}
|
|
198
|
+
return normalized;
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Auto-correct common field name mistakes.
|
|
203
|
+
* Maps wrong field names to correct ones (agentId->agent_id, text->utterance, etc.)
|
|
204
|
+
*/
|
|
205
|
+
function autoCorrectFields(steps) {
|
|
206
|
+
return steps.map((step) => {
|
|
207
|
+
const corrected = { ...step };
|
|
208
|
+
const stepType = corrected.type ?? '';
|
|
209
|
+
if (stepType.startsWith('agent.')) {
|
|
210
|
+
for (const [wrong, correct] of Object.entries(AGENT_CORRECTIONS)) {
|
|
211
|
+
if (wrong in corrected && !(correct in corrected)) {
|
|
212
|
+
corrected[correct] = corrected[wrong];
|
|
213
|
+
delete corrected[wrong];
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
else if (stepType.startsWith('evaluator.')) {
|
|
218
|
+
for (const [wrong, correct] of Object.entries(EVALUATOR_CORRECTIONS)) {
|
|
219
|
+
if (wrong in corrected && !(correct in corrected)) {
|
|
220
|
+
corrected[correct] = corrected[wrong];
|
|
221
|
+
delete corrected[wrong];
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
return corrected;
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Normalize camelCase agent field names to snake_case.
|
|
230
|
+
* useAgentApi->use_agent_api, plannerDefinitionId->planner_id, etc.
|
|
231
|
+
*/
|
|
232
|
+
function normalizeCamelCase(steps) {
|
|
233
|
+
return steps.map((step) => {
|
|
234
|
+
if (step.type !== 'agent.create_session')
|
|
235
|
+
return step;
|
|
236
|
+
const normalized = { ...step };
|
|
237
|
+
for (const [alias, canonical] of Object.entries(AGENT_FIELD_ALIASES)) {
|
|
238
|
+
if (alias in normalized) {
|
|
239
|
+
if (!(canonical in normalized)) {
|
|
240
|
+
normalized[canonical] = normalized[alias];
|
|
241
|
+
}
|
|
242
|
+
delete normalized[alias];
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
return normalized;
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Apply field aliases: remap alias keys to canonical keys, removing duplicates.
|
|
250
|
+
*/
|
|
251
|
+
function applyFieldAliases(step, aliases) {
|
|
252
|
+
for (const [alias, canonical] of Object.entries(aliases)) {
|
|
253
|
+
if (alias in step && !(canonical in step)) {
|
|
254
|
+
step[canonical] = step[alias];
|
|
255
|
+
delete step[alias];
|
|
256
|
+
}
|
|
257
|
+
else if (alias in step && canonical in step) {
|
|
258
|
+
delete step[alias];
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Normalize a scoring evaluator step (field aliases + metric_name injection).
|
|
264
|
+
*/
|
|
265
|
+
function normalizeScoringEvaluator(normalized, evalType) {
|
|
266
|
+
applyFieldAliases(normalized, SCORING_FIELD_ALIASES);
|
|
267
|
+
// Auto-inject or correct metric_name
|
|
268
|
+
if (!('metric_name' in normalized)) {
|
|
269
|
+
const defaultMetric = DEFAULT_METRIC_NAMES[evalType];
|
|
270
|
+
if (defaultMetric) {
|
|
271
|
+
normalized.metric_name = defaultMetric;
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
else if (normalized.metric_name === evalType.split('.')[1]) {
|
|
275
|
+
const defaultMetric = DEFAULT_METRIC_NAMES[evalType];
|
|
276
|
+
if (defaultMetric) {
|
|
277
|
+
normalized.metric_name = defaultMetric;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Normalize an assertion evaluator step (field aliases + operator lowercase + metric_name).
|
|
283
|
+
*/
|
|
284
|
+
function normalizeAssertionEvaluator(normalized, evalType) {
|
|
285
|
+
applyFieldAliases(normalized, ASSERTION_FIELD_ALIASES);
|
|
286
|
+
// Auto-lowercase operator
|
|
287
|
+
if ('operator' in normalized && typeof normalized.operator === 'string') {
|
|
288
|
+
normalized.operator = normalized.operator.toLowerCase();
|
|
289
|
+
}
|
|
290
|
+
// Auto-inject metric_name for assertion evaluators
|
|
291
|
+
if (!('metric_name' in normalized)) {
|
|
292
|
+
normalized.metric_name = evalType.split('.')[1];
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Normalize evaluator field names based on evaluator category.
|
|
297
|
+
* Maps actual/expected <-> generated_output/reference_answer.
|
|
298
|
+
* Also auto-lowercases operator values and auto-injects metric_name.
|
|
299
|
+
*/
|
|
300
|
+
function normalizeEvaluatorFields(steps) {
|
|
301
|
+
return steps.map((step) => {
|
|
302
|
+
const evalType = step.type ?? '';
|
|
303
|
+
if (!evalType.startsWith('evaluator.'))
|
|
304
|
+
return step;
|
|
305
|
+
const normalized = { ...step };
|
|
306
|
+
if (SCORING_EVALUATORS.has(evalType)) {
|
|
307
|
+
normalizeScoringEvaluator(normalized, evalType);
|
|
308
|
+
}
|
|
309
|
+
else if (ASSERTION_EVALUATORS.has(evalType)) {
|
|
310
|
+
normalizeAssertionEvaluator(normalized, evalType);
|
|
311
|
+
}
|
|
312
|
+
// Don't inject metric_name for unknown evaluator types to avoid API validation errors
|
|
313
|
+
// Unknown evaluators like bot_response_rating and planner_topic_assertion don't use metric_name
|
|
314
|
+
return normalized;
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Convert {step_id.field} shorthand references to JSONPath $.outputs[N].field.
|
|
319
|
+
* Builds step_id->index mapping from non-evaluator steps.
|
|
320
|
+
*/
|
|
321
|
+
function convertShorthandRefs(steps) {
|
|
322
|
+
// Build step_id -> output-array index mapping
|
|
323
|
+
const stepIdToIdx = {};
|
|
324
|
+
let outputIdx = 0;
|
|
325
|
+
for (const step of steps) {
|
|
326
|
+
const sid = step.id;
|
|
327
|
+
const stype = step.type ?? '';
|
|
328
|
+
if (sid && !stype.startsWith('evaluator.')) {
|
|
329
|
+
stepIdToIdx[sid] = outputIdx;
|
|
330
|
+
outputIdx += 1;
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
const refPattern = /\{([^}]+)\}/g;
|
|
334
|
+
function replaceValue(value) {
|
|
335
|
+
if (typeof value !== 'string')
|
|
336
|
+
return value;
|
|
337
|
+
return value.replace(refPattern, (match, ref) => {
|
|
338
|
+
const dotIdx = ref.indexOf('.');
|
|
339
|
+
if (dotIdx < 0)
|
|
340
|
+
return match;
|
|
341
|
+
const sid = ref.substring(0, dotIdx);
|
|
342
|
+
let field = ref.substring(dotIdx + 1);
|
|
343
|
+
if (!(sid in stepIdToIdx))
|
|
344
|
+
return match;
|
|
345
|
+
const idx = stepIdToIdx[sid];
|
|
346
|
+
// Normalize legacy nested-response path to flat response
|
|
347
|
+
if (field.startsWith('response.messages')) {
|
|
348
|
+
field = 'response';
|
|
349
|
+
}
|
|
350
|
+
return `$.outputs[${idx}].${field}`;
|
|
351
|
+
});
|
|
352
|
+
}
|
|
353
|
+
return steps.map((step) => {
|
|
354
|
+
const newStep = {};
|
|
355
|
+
for (const [key, val] of Object.entries(step)) {
|
|
356
|
+
if (typeof val === 'string') {
|
|
357
|
+
newStep[key] = replaceValue(val);
|
|
358
|
+
}
|
|
359
|
+
else if (val !== null && typeof val === 'object' && !Array.isArray(val)) {
|
|
360
|
+
const newObj = {};
|
|
361
|
+
for (const [k, v] of Object.entries(val)) {
|
|
362
|
+
newObj[k] = typeof v === 'string' ? replaceValue(v) : v;
|
|
363
|
+
}
|
|
364
|
+
newStep[key] = newObj;
|
|
365
|
+
}
|
|
366
|
+
else if (Array.isArray(val)) {
|
|
367
|
+
newStep[key] = val.map((item) => typeof item === 'string' ? replaceValue(item) : item);
|
|
368
|
+
}
|
|
369
|
+
else {
|
|
370
|
+
newStep[key] = val;
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
return newStep;
|
|
374
|
+
});
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* Inject default values:
|
|
378
|
+
* - use_agent_api=true on agent.create_session if neither use_agent_api nor planner_id present
|
|
379
|
+
*/
|
|
380
|
+
function injectDefaults(steps) {
|
|
381
|
+
return steps.map((step) => {
|
|
382
|
+
if (step.type === 'agent.create_session') {
|
|
383
|
+
if (!('use_agent_api' in step) && !('planner_id' in step)) {
|
|
384
|
+
return { ...step, use_agent_api: true };
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
return step;
|
|
388
|
+
});
|
|
389
|
+
}
|
|
390
|
+
/**
|
|
391
|
+
* Strip unrecognized fields from steps based on type-specific whitelists.
|
|
392
|
+
*/
|
|
393
|
+
function stripUnrecognizedFields(steps) {
|
|
394
|
+
return steps.map((step) => {
|
|
395
|
+
const stepType = step.type ?? '';
|
|
396
|
+
// Agent steps
|
|
397
|
+
if (stepType in VALID_AGENT_FIELDS) {
|
|
398
|
+
const validFields = VALID_AGENT_FIELDS[stepType];
|
|
399
|
+
const stripped = {};
|
|
400
|
+
for (const [key, val] of Object.entries(step)) {
|
|
401
|
+
if (validFields.has(key)) {
|
|
402
|
+
stripped[key] = val;
|
|
403
|
+
}
|
|
404
|
+
}
|
|
405
|
+
return stripped;
|
|
406
|
+
}
|
|
407
|
+
// Scoring evaluators
|
|
408
|
+
if (SCORING_EVALUATORS.has(stepType)) {
|
|
409
|
+
const stripped = {};
|
|
410
|
+
for (const [key, val] of Object.entries(step)) {
|
|
411
|
+
if (SCORING_VALID_FIELDS.has(key)) {
|
|
412
|
+
stripped[key] = val;
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
return stripped;
|
|
416
|
+
}
|
|
417
|
+
// Assertion evaluators
|
|
418
|
+
if (ASSERTION_EVALUATORS.has(stepType)) {
|
|
419
|
+
const stripped = {};
|
|
420
|
+
for (const [key, val] of Object.entries(step)) {
|
|
421
|
+
if (ASSERTION_VALID_FIELDS.has(key)) {
|
|
422
|
+
stripped[key] = val;
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
return stripped;
|
|
426
|
+
}
|
|
427
|
+
// Unknown types: don't strip (to avoid breaking future evaluator types)
|
|
428
|
+
return step;
|
|
429
|
+
});
|
|
430
|
+
}
|
|
431
|
+
// --- Batch splitting ---
|
|
432
|
+
/**
|
|
433
|
+
* Split tests array into chunks of batchSize.
|
|
434
|
+
*/
|
|
435
|
+
function splitIntoBatches(tests, batchSize) {
|
|
436
|
+
const batches = [];
|
|
437
|
+
for (let i = 0; i < tests.length; i += batchSize) {
|
|
438
|
+
batches.push(tests.slice(i, i + batchSize));
|
|
439
|
+
}
|
|
440
|
+
return batches;
|
|
441
|
+
}
|
|
442
|
+
//# sourceMappingURL=evalNormalizer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evalNormalizer.js","sourceRoot":"","sources":["../src/evalNormalizer.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
|
@@ -11,3 +11,7 @@ export { AgentBase } from './agents/agentBase';
|
|
|
11
11
|
export { convertTestResultsToFormat, humanFriendlyName } from './agentTestResults';
|
|
12
12
|
export { writeDebugLog } from './apexUtils';
|
|
13
13
|
export { applyStringReplacements, applyStringReplacementsToAgent, type ReplacementConfig, type ReplacementResult, } from './stringReplacements';
|
|
14
|
+
export { normalizePayload, normalizeMcpShorthand, autoCorrectFields, normalizeCamelCase, normalizeEvaluatorFields, convertShorthandRefs, injectDefaults, stripUnrecognizedFields, splitIntoBatches, type EvalPayload, type EvalTest, type EvalStep, } from './evalNormalizer';
|
|
15
|
+
export { formatResults, type EvalApiResponse, type EvalOutput, type EvalResult, type TestError, type TestResult, type ResultFormat, } from './evalFormatter';
|
|
16
|
+
export { isYamlTestSpec, parseTestSpec, translateTestSpec, translateTestCase, } from './yamlSpecTranslator';
|
|
17
|
+
export { resolveAgent, executeBatches, buildResultSummary, type AgentEvalRunResult, } from './agentEvalRunner';
|
package/lib/index.js
CHANGED
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
-
exports.applyStringReplacementsToAgent = exports.applyStringReplacements = exports.writeDebugLog = exports.humanFriendlyName = exports.convertTestResultsToFormat = exports.AgentBase = exports.ScriptAgent = exports.ProductionAgent = exports.AgentTestCreateLifecycleStages = exports.AgentTest = exports.createAgentTester = exports.normalizeAgentforceStudioResults = exports.AgentforceStudioTester = exports.AgentTester = exports.AgentCreateLifecycleStages = exports.Agent = exports.listCachedPreviewSessions = exports.getCurrentPreviewSessionId = exports.getCachedPreviewSessionIds = exports.removePreviewSessionCache = exports.validatePreviewSession = exports.createPreviewSessionCache = exports.detectTestRunnerFromId = exports.determineTestRunner = exports.readTranscriptEntries = exports.findAuthoringBundle = exports.metric = exports.COMPILATION_API_EXIT_CODES = exports.AgentSource = void 0;
|
|
18
|
+
exports.buildResultSummary = exports.executeBatches = exports.resolveAgent = exports.translateTestCase = exports.translateTestSpec = exports.parseTestSpec = exports.isYamlTestSpec = exports.formatResults = exports.splitIntoBatches = exports.stripUnrecognizedFields = exports.injectDefaults = exports.convertShorthandRefs = exports.normalizeEvaluatorFields = exports.normalizeCamelCase = exports.autoCorrectFields = exports.normalizeMcpShorthand = exports.normalizePayload = exports.applyStringReplacementsToAgent = exports.applyStringReplacements = exports.writeDebugLog = exports.humanFriendlyName = exports.convertTestResultsToFormat = exports.AgentBase = exports.ScriptAgent = exports.ProductionAgent = exports.AgentTestCreateLifecycleStages = exports.AgentTest = exports.createAgentTester = exports.normalizeAgentforceStudioResults = exports.AgentforceStudioTester = exports.AgentTester = exports.AgentCreateLifecycleStages = exports.Agent = exports.listCachedPreviewSessions = exports.getCurrentPreviewSessionId = exports.getCachedPreviewSessionIds = exports.removePreviewSessionCache = exports.validatePreviewSession = exports.createPreviewSessionCache = exports.detectTestRunnerFromId = exports.determineTestRunner = exports.readTranscriptEntries = exports.findAuthoringBundle = exports.metric = exports.COMPILATION_API_EXIT_CODES = exports.AgentSource = void 0;
|
|
19
19
|
var types_1 = require("./types");
|
|
20
20
|
Object.defineProperty(exports, "AgentSource", { enumerable: true, get: function () { return types_1.AgentSource; } });
|
|
21
21
|
// Compilation API exit codes (CLI contract)
|
|
@@ -59,4 +59,25 @@ Object.defineProperty(exports, "writeDebugLog", { enumerable: true, get: functio
|
|
|
59
59
|
var stringReplacements_1 = require("./stringReplacements");
|
|
60
60
|
Object.defineProperty(exports, "applyStringReplacements", { enumerable: true, get: function () { return stringReplacements_1.applyStringReplacements; } });
|
|
61
61
|
Object.defineProperty(exports, "applyStringReplacementsToAgent", { enumerable: true, get: function () { return stringReplacements_1.applyStringReplacementsToAgent; } });
|
|
62
|
+
var evalNormalizer_1 = require("./evalNormalizer");
|
|
63
|
+
Object.defineProperty(exports, "normalizePayload", { enumerable: true, get: function () { return evalNormalizer_1.normalizePayload; } });
|
|
64
|
+
Object.defineProperty(exports, "normalizeMcpShorthand", { enumerable: true, get: function () { return evalNormalizer_1.normalizeMcpShorthand; } });
|
|
65
|
+
Object.defineProperty(exports, "autoCorrectFields", { enumerable: true, get: function () { return evalNormalizer_1.autoCorrectFields; } });
|
|
66
|
+
Object.defineProperty(exports, "normalizeCamelCase", { enumerable: true, get: function () { return evalNormalizer_1.normalizeCamelCase; } });
|
|
67
|
+
Object.defineProperty(exports, "normalizeEvaluatorFields", { enumerable: true, get: function () { return evalNormalizer_1.normalizeEvaluatorFields; } });
|
|
68
|
+
Object.defineProperty(exports, "convertShorthandRefs", { enumerable: true, get: function () { return evalNormalizer_1.convertShorthandRefs; } });
|
|
69
|
+
Object.defineProperty(exports, "injectDefaults", { enumerable: true, get: function () { return evalNormalizer_1.injectDefaults; } });
|
|
70
|
+
Object.defineProperty(exports, "stripUnrecognizedFields", { enumerable: true, get: function () { return evalNormalizer_1.stripUnrecognizedFields; } });
|
|
71
|
+
Object.defineProperty(exports, "splitIntoBatches", { enumerable: true, get: function () { return evalNormalizer_1.splitIntoBatches; } });
|
|
72
|
+
var evalFormatter_1 = require("./evalFormatter");
|
|
73
|
+
Object.defineProperty(exports, "formatResults", { enumerable: true, get: function () { return evalFormatter_1.formatResults; } });
|
|
74
|
+
var yamlSpecTranslator_1 = require("./yamlSpecTranslator");
|
|
75
|
+
Object.defineProperty(exports, "isYamlTestSpec", { enumerable: true, get: function () { return yamlSpecTranslator_1.isYamlTestSpec; } });
|
|
76
|
+
Object.defineProperty(exports, "parseTestSpec", { enumerable: true, get: function () { return yamlSpecTranslator_1.parseTestSpec; } });
|
|
77
|
+
Object.defineProperty(exports, "translateTestSpec", { enumerable: true, get: function () { return yamlSpecTranslator_1.translateTestSpec; } });
|
|
78
|
+
Object.defineProperty(exports, "translateTestCase", { enumerable: true, get: function () { return yamlSpecTranslator_1.translateTestCase; } });
|
|
79
|
+
var agentEvalRunner_1 = require("./agentEvalRunner");
|
|
80
|
+
Object.defineProperty(exports, "resolveAgent", { enumerable: true, get: function () { return agentEvalRunner_1.resolveAgent; } });
|
|
81
|
+
Object.defineProperty(exports, "executeBatches", { enumerable: true, get: function () { return agentEvalRunner_1.executeBatches; } });
|
|
82
|
+
Object.defineProperty(exports, "buildResultSummary", { enumerable: true, get: function () { return agentEvalRunner_1.buildResultSummary; } });
|
|
62
83
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,iCAsEiB;AArCf,oGAAA,WAAW,OAAA;AAmCX,4CAA4C;AAC5C,mHAAA,0BAA0B,OAAA;AAG5B,iCAiBiB;AAhBf,+FAAA,MAAM,OAAA;AACN,4GAAA,mBAAmB,OAAA;AACnB,8GAAA,qBAAqB,OAAA;AACrB,4GAAA,mBAAmB,OAAA;AACnB,+GAAA,sBAAsB,OAAA;AAEtB,kHAAA,yBAAyB,OAAA;AACzB,+GAAA,sBAAsB,OAAA;AACtB,kHAAA,yBAAyB,OAAA;AACzB,mHAAA,0BAA0B,OAAA;AAC1B,mHAAA,0BAA0B,OAAA;AAC1B,kHAAA,yBAAyB,OAAA;AAM3B,iCAAgF;AAAvE,8FAAA,KAAK,OAAA;AAAE,mHAAA,0BAA0B,OAAA;AAC1C,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,mEAAoG;AAA3F,gIAAA,sBAAsB,OAAA;AAAE,0IAAA,gCAAgC,OAAA;AACjE,2DAAsH;AAA7G,uHAAA,iBAAiB,OAAA;AAC1B,yCAAwE;AAA/D,sGAAA,SAAS,OAAA;AAAE,2HAAA,8BAA8B,OAAA;AAClD,4DAA2D;AAAlD,kHAAA,eAAe,OAAA;AACxB,oDAAmD;AAA1C,0GAAA,WAAW,OAAA;AACpB,gDAA+C;AAAtC,sGAAA,SAAS,OAAA;AAClB,uDAAmF;AAA1E,8HAAA,0BAA0B,OAAA;AAAE,qHAAA,iBAAiB,OAAA;AACtD,yCAA4C;AAAnC,0GAAA,aAAa,OAAA;AACtB,2DAK8B;AAJ5B,6HAAA,uBAAuB,OAAA;AACvB,oIAAA,8BAA8B,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,iCAsEiB;AArCf,oGAAA,WAAW,OAAA;AAmCX,4CAA4C;AAC5C,mHAAA,0BAA0B,OAAA;AAG5B,iCAiBiB;AAhBf,+FAAA,MAAM,OAAA;AACN,4GAAA,mBAAmB,OAAA;AACnB,8GAAA,qBAAqB,OAAA;AACrB,4GAAA,mBAAmB,OAAA;AACnB,+GAAA,sBAAsB,OAAA;AAEtB,kHAAA,yBAAyB,OAAA;AACzB,+GAAA,sBAAsB,OAAA;AACtB,kHAAA,yBAAyB,OAAA;AACzB,mHAAA,0BAA0B,OAAA;AAC1B,mHAAA,0BAA0B,OAAA;AAC1B,kHAAA,yBAAyB,OAAA;AAM3B,iCAAgF;AAAvE,8FAAA,KAAK,OAAA;AAAE,mHAAA,0BAA0B,OAAA;AAC1C,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AACpB,mEAAoG;AAA3F,gIAAA,sBAAsB,OAAA;AAAE,0IAAA,gCAAgC,OAAA;AACjE,2DAAsH;AAA7G,uHAAA,iBAAiB,OAAA;AAC1B,yCAAwE;AAA/D,sGAAA,SAAS,OAAA;AAAE,2HAAA,8BAA8B,OAAA;AAClD,4DAA2D;AAAlD,kHAAA,eAAe,OAAA;AACxB,oDAAmD;AAA1C,0GAAA,WAAW,OAAA;AACpB,gDAA+C;AAAtC,sGAAA,SAAS,OAAA;AAClB,uDAAmF;AAA1E,8HAAA,0BAA0B,OAAA;AAAE,qHAAA,iBAAiB,OAAA;AACtD,yCAA4C;AAAnC,0GAAA,aAAa,OAAA;AACtB,2DAK8B;AAJ5B,6HAAA,uBAAuB,OAAA;AACvB,oIAAA,8BAA8B,OAAA;AAIhC,mDAa0B;AAZxB,kHAAA,gBAAgB,OAAA;AAChB,uHAAA,qBAAqB,OAAA;AACrB,mHAAA,iBAAiB,OAAA;AACjB,oHAAA,kBAAkB,OAAA;AAClB,0HAAA,wBAAwB,OAAA;AACxB,sHAAA,oBAAoB,OAAA;AACpB,gHAAA,cAAc,OAAA;AACd,yHAAA,uBAAuB,OAAA;AACvB,kHAAA,gBAAgB,OAAA;AAKlB,iDAQyB;AAPvB,8GAAA,aAAa,OAAA;AAQf,2DAK8B;AAJ5B,oHAAA,cAAc,OAAA;AACd,mHAAA,aAAa,OAAA;AACb,uHAAA,iBAAiB,OAAA;AACjB,uHAAA,iBAAiB,OAAA;AAEnB,qDAK2B;AAJzB,+GAAA,YAAY,OAAA;AACZ,iHAAA,cAAc,OAAA;AACd,qHAAA,kBAAkB,OAAA"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { TestSpec, TestCase } from './types.js';
|
|
2
|
+
import type { EvalPayload, EvalTest } from './evalNormalizer.js';
|
|
3
|
+
/**
|
|
4
|
+
* Returns true if the content looks like a YAML TestSpec (has testCases + subjectName).
|
|
5
|
+
* Returns false for JSON EvalPayload, invalid content, or YAML missing required fields.
|
|
6
|
+
*/
|
|
7
|
+
export declare function isYamlTestSpec(content: string): boolean;
|
|
8
|
+
/**
|
|
9
|
+
* Parse a YAML string into a TestSpec.
|
|
10
|
+
* Throws if the content is not valid YAML or is missing required fields.
|
|
11
|
+
*/
|
|
12
|
+
export declare function parseTestSpec(content: string): TestSpec;
|
|
13
|
+
/**
|
|
14
|
+
* Translate a full TestSpec into an EvalPayload.
|
|
15
|
+
*/
|
|
16
|
+
export declare function translateTestSpec(spec: TestSpec): EvalPayload;
|
|
17
|
+
/**
|
|
18
|
+
* Translate a single TestCase into an EvalTest with ordered steps.
|
|
19
|
+
*/
|
|
20
|
+
export declare function translateTestCase(testCase: TestCase, index: number, specName?: string): EvalTest;
|