@opensearch-project/agent-health 0.5.2 → 0.7.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/README.md +1 -0
- package/cli/dist/index.js +2325 -961
- package/dist/assets/index-D-Np_l_T.js +246 -0
- package/dist/assets/index-vZt9QZKf.css +1 -0
- package/dist/index.html +2 -2
- package/docs/CLI.md +183 -3
- package/docs/CONFIGURATION.md +1 -1
- package/docs/CONNECTORS.md +1 -1
- package/docs/INSTRUMENT_WITH_OTEL.md +7 -0
- package/docs/SDK.md +178 -5
- package/docs/STORAGE_INDEX_FIELD_LIMITS.md +216 -0
- package/docs/skills/AGENT_HEALTH.md +55 -1
- package/docs/skills/add-connector/SKILL.md +5 -1
- package/examples/eval-files/demo.eval.js +1 -1
- package/examples/eval-files/ops-rca-classification.eval.js +71 -0
- package/examples/eval-files/ops-rca-evaluator.json +15 -0
- package/examples/eval-files/sdk-demo.eval.js +72 -0
- package/examples/eval-files/sdk-describe-demo.eval.js +50 -0
- package/examples/eval-files/sdk-hooks-demo.eval.js +1 -1
- package/lib/dist/lib/agentTrends.d.ts +210 -0
- package/lib/dist/lib/agentTrends.d.ts.map +1 -0
- package/lib/dist/lib/agentTrends.js +360 -0
- package/lib/dist/lib/agentTrends.js.map +1 -0
- package/lib/dist/lib/bedrockCompat.d.ts +27 -0
- package/lib/dist/lib/bedrockCompat.d.ts.map +1 -0
- package/lib/dist/lib/bedrockCompat.js +83 -0
- package/lib/dist/lib/bedrockCompat.js.map +1 -0
- package/lib/dist/lib/benchmarkCaseReview.d.ts +114 -0
- package/lib/dist/lib/benchmarkCaseReview.d.ts.map +1 -0
- package/lib/dist/lib/benchmarkCaseReview.js +177 -0
- package/lib/dist/lib/benchmarkCaseReview.js.map +1 -0
- package/lib/dist/lib/benchmarkImage.d.ts +52 -0
- package/lib/dist/lib/benchmarkImage.d.ts.map +1 -0
- package/lib/dist/lib/benchmarkImage.js +113 -0
- package/lib/dist/lib/benchmarkImage.js.map +1 -0
- package/lib/dist/lib/benchmarkRunsTable.d.ts +109 -0
- package/lib/dist/lib/benchmarkRunsTable.d.ts.map +1 -0
- package/lib/dist/lib/benchmarkRunsTable.js +212 -0
- package/lib/dist/lib/benchmarkRunsTable.js.map +1 -0
- package/lib/dist/lib/benchmarkVersionUtils.d.ts +13 -0
- package/lib/dist/lib/benchmarkVersionUtils.d.ts.map +1 -1
- package/lib/dist/lib/benchmarkVersionUtils.js +21 -0
- package/lib/dist/lib/benchmarkVersionUtils.js.map +1 -1
- package/lib/dist/lib/chunkedFetch.d.ts +18 -0
- package/lib/dist/lib/chunkedFetch.d.ts.map +1 -0
- package/lib/dist/lib/chunkedFetch.js +40 -0
- package/lib/dist/lib/chunkedFetch.js.map +1 -0
- package/lib/dist/lib/comparisonInsights.d.ts +151 -0
- package/lib/dist/lib/comparisonInsights.d.ts.map +1 -0
- package/lib/dist/lib/comparisonInsights.js +270 -0
- package/lib/dist/lib/comparisonInsights.js.map +1 -0
- package/lib/dist/lib/config/loader.d.ts.map +1 -1
- package/lib/dist/lib/config/loader.js +16 -1
- package/lib/dist/lib/config/loader.js.map +1 -1
- package/lib/dist/lib/config/types.d.ts +14 -0
- package/lib/dist/lib/config/types.d.ts.map +1 -1
- package/lib/dist/lib/constants.d.ts +11 -0
- package/lib/dist/lib/constants.d.ts.map +1 -1
- package/lib/dist/lib/constants.js +10 -1
- package/lib/dist/lib/constants.js.map +1 -1
- package/lib/dist/lib/contextFormat.d.ts +26 -0
- package/lib/dist/lib/contextFormat.d.ts.map +1 -0
- package/lib/dist/lib/contextFormat.js +28 -0
- package/lib/dist/lib/contextFormat.js.map +1 -0
- package/lib/dist/lib/dashboardMetrics.d.ts +11 -2
- package/lib/dist/lib/dashboardMetrics.d.ts.map +1 -1
- package/lib/dist/lib/dashboardMetrics.js +38 -3
- package/lib/dist/lib/dashboardMetrics.js.map +1 -1
- package/lib/dist/lib/envCompat.d.ts.map +1 -1
- package/lib/dist/lib/envCompat.js +14 -5
- package/lib/dist/lib/envCompat.js.map +1 -1
- package/lib/dist/lib/evaluationRerun.d.ts +102 -0
- package/lib/dist/lib/evaluationRerun.d.ts.map +1 -0
- package/lib/dist/lib/evaluationRerun.js +134 -0
- package/lib/dist/lib/evaluationRerun.js.map +1 -0
- package/lib/dist/lib/judgeFailureSummary.d.ts +66 -0
- package/lib/dist/lib/judgeFailureSummary.d.ts.map +1 -0
- package/lib/dist/lib/judgeFailureSummary.js +68 -0
- package/lib/dist/lib/judgeFailureSummary.js.map +1 -0
- package/lib/dist/lib/judgeStrategies.d.ts +108 -0
- package/lib/dist/lib/judgeStrategies.d.ts.map +1 -0
- package/lib/dist/lib/judgeStrategies.js +135 -0
- package/lib/dist/lib/judgeStrategies.js.map +1 -0
- package/lib/dist/lib/matchers/expect.d.ts +21 -1
- package/lib/dist/lib/matchers/expect.d.ts.map +1 -1
- package/lib/dist/lib/matchers/expect.js +51 -0
- package/lib/dist/lib/matchers/expect.js.map +1 -1
- package/lib/dist/lib/matchers/judgeAccessor.d.ts +4 -0
- package/lib/dist/lib/matchers/judgeAccessor.d.ts.map +1 -1
- package/lib/dist/lib/matchers/judgeAccessor.js +13 -2
- package/lib/dist/lib/matchers/judgeAccessor.js.map +1 -1
- package/lib/dist/lib/matchers/judgeReasoningParse.d.ts +49 -0
- package/lib/dist/lib/matchers/judgeReasoningParse.d.ts.map +1 -0
- package/lib/dist/lib/matchers/judgeReasoningParse.js +128 -0
- package/lib/dist/lib/matchers/judgeReasoningParse.js.map +1 -0
- package/lib/dist/lib/matchers/traces.d.ts +17 -2
- package/lib/dist/lib/matchers/traces.d.ts.map +1 -1
- package/lib/dist/lib/matchers/traces.js +136 -16
- package/lib/dist/lib/matchers/traces.js.map +1 -1
- package/lib/dist/lib/matchers/tracesPricing.d.ts +38 -0
- package/lib/dist/lib/matchers/tracesPricing.d.ts.map +1 -0
- package/lib/dist/lib/matchers/tracesPricing.js +64 -0
- package/lib/dist/lib/matchers/tracesPricing.js.map +1 -0
- package/lib/dist/lib/matchers/types.d.ts +25 -0
- package/lib/dist/lib/matchers/types.d.ts.map +1 -1
- package/lib/dist/lib/resolveCanonicalRun.d.ts +23 -0
- package/lib/dist/lib/resolveCanonicalRun.d.ts.map +1 -0
- package/lib/dist/lib/resolveCanonicalRun.js +26 -0
- package/lib/dist/lib/resolveCanonicalRun.js.map +1 -0
- package/lib/dist/lib/runActions.d.ts +120 -0
- package/lib/dist/lib/runActions.d.ts.map +1 -0
- package/lib/dist/lib/runActions.js +130 -0
- package/lib/dist/lib/runActions.js.map +1 -0
- package/lib/dist/lib/runInsights.d.ts +86 -0
- package/lib/dist/lib/runInsights.d.ts.map +1 -0
- package/lib/dist/lib/runInsights.js +185 -0
- package/lib/dist/lib/runInsights.js.map +1 -0
- package/lib/dist/lib/runName.d.ts +29 -0
- package/lib/dist/lib/runName.d.ts.map +1 -0
- package/lib/dist/lib/runName.js +38 -0
- package/lib/dist/lib/runName.js.map +1 -0
- package/lib/dist/lib/runReportPath.d.ts +16 -0
- package/lib/dist/lib/runReportPath.d.ts.map +1 -0
- package/lib/dist/lib/runReportPath.js +22 -0
- package/lib/dist/lib/runReportPath.js.map +1 -0
- package/lib/dist/lib/runSort.d.ts +27 -0
- package/lib/dist/lib/runSort.d.ts.map +1 -0
- package/lib/dist/lib/runSort.js +31 -0
- package/lib/dist/lib/runSort.js.map +1 -0
- package/lib/dist/lib/runStats.d.ts +109 -5
- package/lib/dist/lib/runStats.d.ts.map +1 -1
- package/lib/dist/lib/runStats.js +193 -10
- package/lib/dist/lib/runStats.js.map +1 -1
- package/lib/dist/lib/testCases/define.d.ts.map +1 -1
- package/lib/dist/lib/testCases/define.js +93 -46
- package/lib/dist/lib/testCases/define.js.map +1 -1
- package/lib/dist/lib/testCases/judge.d.ts.map +1 -1
- package/lib/dist/lib/testCases/judge.js +22 -4
- package/lib/dist/lib/testCases/judge.js.map +1 -1
- package/lib/dist/lib/testCases/loader.d.ts +35 -1
- package/lib/dist/lib/testCases/loader.d.ts.map +1 -1
- package/lib/dist/lib/testCases/loader.js +278 -31
- package/lib/dist/lib/testCases/loader.js.map +1 -1
- package/lib/dist/lib/trajectoryStepDisplay.d.ts +25 -0
- package/lib/dist/lib/trajectoryStepDisplay.d.ts.map +1 -0
- package/lib/dist/lib/trajectoryStepDisplay.js +42 -0
- package/lib/dist/lib/trajectoryStepDisplay.js.map +1 -0
- package/lib/dist/lib/utils.d.ts +34 -0
- package/lib/dist/lib/utils.d.ts.map +1 -1
- package/lib/dist/lib/utils.js +49 -0
- package/lib/dist/lib/utils.js.map +1 -1
- package/lib/dist/services/connectors/claude-code/ClaudeCodeConnector.d.ts +68 -22
- package/lib/dist/services/connectors/claude-code/ClaudeCodeConnector.d.ts.map +1 -1
- package/lib/dist/services/connectors/claude-code/ClaudeCodeConnector.js +148 -111
- package/lib/dist/services/connectors/claude-code/ClaudeCodeConnector.js.map +1 -1
- package/lib/dist/services/connectors/kiro/KiroConnector.d.ts +21 -13
- package/lib/dist/services/connectors/kiro/KiroConnector.d.ts.map +1 -1
- package/lib/dist/services/connectors/kiro/KiroConnector.js +22 -25
- package/lib/dist/services/connectors/kiro/KiroConnector.js.map +1 -1
- package/lib/dist/services/connectors/pi/PiConnector.d.ts +49 -10
- package/lib/dist/services/connectors/pi/PiConnector.d.ts.map +1 -1
- package/lib/dist/services/connectors/pi/PiConnector.js +102 -86
- package/lib/dist/services/connectors/pi/PiConnector.js.map +1 -1
- package/lib/dist/services/connectors/subprocess/SubprocessConnector.d.ts +59 -14
- package/lib/dist/services/connectors/subprocess/SubprocessConnector.d.ts.map +1 -1
- package/lib/dist/services/connectors/subprocess/SubprocessConnector.js +95 -61
- package/lib/dist/services/connectors/subprocess/SubprocessConnector.js.map +1 -1
- package/lib/dist/services/evaluation/bedrockJudge.d.ts +18 -0
- package/lib/dist/services/evaluation/bedrockJudge.d.ts.map +1 -1
- package/lib/dist/services/evaluation/bedrockJudge.js +4 -0
- package/lib/dist/services/evaluation/bedrockJudge.js.map +1 -1
- package/lib/dist/services/evaluation/index.d.ts +18 -1
- package/lib/dist/services/evaluation/index.d.ts.map +1 -1
- package/lib/dist/services/evaluation/index.js +156 -19
- package/lib/dist/services/evaluation/index.js.map +1 -1
- package/lib/dist/services/metrics.d.ts +55 -0
- package/lib/dist/services/metrics.d.ts.map +1 -0
- package/lib/dist/services/metrics.js +89 -0
- package/lib/dist/services/metrics.js.map +1 -0
- package/lib/dist/services/storage/asyncBenchmarkStorage.d.ts +1 -1
- package/lib/dist/services/storage/asyncBenchmarkStorage.d.ts.map +1 -1
- package/lib/dist/services/storage/asyncBenchmarkStorage.js +30 -3
- package/lib/dist/services/storage/asyncBenchmarkStorage.js.map +1 -1
- package/lib/dist/services/storage/asyncRunStorage.d.ts +20 -1
- package/lib/dist/services/storage/asyncRunStorage.d.ts.map +1 -1
- package/lib/dist/services/storage/asyncRunStorage.js +125 -2
- package/lib/dist/services/storage/asyncRunStorage.js.map +1 -1
- package/lib/dist/services/storage/asyncTestCaseStorage.d.ts +18 -4
- package/lib/dist/services/storage/asyncTestCaseStorage.d.ts.map +1 -1
- package/lib/dist/services/storage/asyncTestCaseStorage.js +21 -4
- package/lib/dist/services/storage/asyncTestCaseStorage.js.map +1 -1
- package/lib/dist/services/storage/opensearchClient.d.ts +47 -12
- package/lib/dist/services/storage/opensearchClient.d.ts.map +1 -1
- package/lib/dist/services/storage/opensearchClient.js +12 -5
- package/lib/dist/services/storage/opensearchClient.js.map +1 -1
- package/lib/dist/services/traces/browserRecovery.d.ts +12 -1
- package/lib/dist/services/traces/browserRecovery.d.ts.map +1 -1
- package/lib/dist/services/traces/browserRecovery.js +35 -5
- package/lib/dist/services/traces/browserRecovery.js.map +1 -1
- package/lib/dist/services/traces/index.d.ts +8 -1
- package/lib/dist/services/traces/index.d.ts.map +1 -1
- package/lib/dist/services/traces/index.js +33 -12
- package/lib/dist/services/traces/index.js.map +1 -1
- package/lib/dist/services/traces/judgeAgentsHints.d.ts +98 -3
- package/lib/dist/services/traces/judgeAgentsHints.d.ts.map +1 -1
- package/lib/dist/services/traces/judgeAgentsHints.js +144 -3
- package/lib/dist/services/traces/judgeAgentsHints.js.map +1 -1
- package/lib/dist/services/traces/messageExtraction.d.ts.map +1 -1
- package/lib/dist/services/traces/messageExtraction.js +95 -33
- package/lib/dist/services/traces/messageExtraction.js.map +1 -1
- package/lib/dist/services/traces/spansToTrajectory.d.ts.map +1 -1
- package/lib/dist/services/traces/spansToTrajectory.js +51 -13
- package/lib/dist/services/traces/spansToTrajectory.js.map +1 -1
- package/lib/dist/services/traces/tracePoller.d.ts +27 -3
- package/lib/dist/services/traces/tracePoller.d.ts.map +1 -1
- package/lib/dist/services/traces/tracePoller.js +196 -33
- package/lib/dist/services/traces/tracePoller.js.map +1 -1
- package/lib/dist/services/traces/trajectoryMerge.d.ts +79 -0
- package/lib/dist/services/traces/trajectoryMerge.d.ts.map +1 -0
- package/lib/dist/services/traces/trajectoryMerge.js +109 -0
- package/lib/dist/services/traces/trajectoryMerge.js.map +1 -0
- package/lib/dist/types/index.d.ts +250 -3
- package/lib/dist/types/index.d.ts.map +1 -1
- package/lib/dist/types/index.js +24 -0
- package/lib/dist/types/index.js.map +1 -1
- package/package.json +8 -5
- package/server/dist/app.js +5490 -1557
- package/server/dist/index.js +5490 -1557
- package/dist/assets/index-CCQRDlO0.js +0 -243
- package/dist/assets/index-CNHQVbcj.css +0 -1
|
@@ -228,15 +228,50 @@ export function getUniqueAgents(benchmarks) {
|
|
|
228
228
|
}));
|
|
229
229
|
}
|
|
230
230
|
/**
|
|
231
|
-
* Color palette for agents (matches existing chart patterns)
|
|
231
|
+
* Color palette for agents (matches existing chart patterns).
|
|
232
|
+
* Explicit overrides win; everything else resolves via a deterministic
|
|
233
|
+
* hash below so every chart that colors dots/lines/badges by agent (the
|
|
234
|
+
* Agent Trends dot plot included) shares ONE consistent, app-wide mapping.
|
|
232
235
|
*/
|
|
233
236
|
export const AGENT_COLORS = {
|
|
234
237
|
'demo': '#6b7280', // gray-500
|
|
235
238
|
};
|
|
236
239
|
/**
|
|
237
|
-
*
|
|
240
|
+
* Distinct, readable hues for agents with no explicit override above.
|
|
241
|
+
* Kept modest (10 colors) — with many agents in view some hues repeat,
|
|
242
|
+
* but callers that need N agents to stay unambiguous (e.g. an all-agents
|
|
243
|
+
* overlay chart) should disambiguate by label/position, not by adding
|
|
244
|
+
* more hues; past ~10 simultaneous colors most people can't reliably
|
|
245
|
+
* tell them apart anyway.
|
|
246
|
+
*/
|
|
247
|
+
const AGENT_COLOR_PALETTE = [
|
|
248
|
+
'#3b82f6', // blue-500
|
|
249
|
+
'#10b981', // emerald-500
|
|
250
|
+
'#f59e0b', // amber-500
|
|
251
|
+
'#ef4444', // red-500
|
|
252
|
+
'#8b5cf6', // violet-500
|
|
253
|
+
'#06b6d4', // cyan-500
|
|
254
|
+
'#ec4899', // pink-500
|
|
255
|
+
'#84cc16', // lime-500
|
|
256
|
+
'#f97316', // orange-500
|
|
257
|
+
'#6366f1', // indigo-500
|
|
258
|
+
];
|
|
259
|
+
/**
|
|
260
|
+
* Get color for an agent key. Deterministic per key via a simple string
|
|
261
|
+
* hash into `AGENT_COLOR_PALETTE` — NOT a sorted-index assignment, on
|
|
262
|
+
* purpose: an index-based scheme reassigns colors as the visible agent
|
|
263
|
+
* set changes (e.g. narrowing a benchmark filter from 14 agents to 3
|
|
264
|
+
* shifts everyone's index), so the SAME agent could render a different
|
|
265
|
+
* color depending on what else happens to be in scope. A hash of the key
|
|
266
|
+
* itself is stable everywhere, independent of any other agent's presence.
|
|
238
267
|
*/
|
|
239
268
|
export function getAgentColor(agentKey) {
|
|
240
|
-
|
|
269
|
+
if (AGENT_COLORS[agentKey])
|
|
270
|
+
return AGENT_COLORS[agentKey];
|
|
271
|
+
let hash = 0;
|
|
272
|
+
for (let i = 0; i < agentKey.length; i++) {
|
|
273
|
+
hash = (hash * 31 + agentKey.charCodeAt(i)) | 0;
|
|
274
|
+
}
|
|
275
|
+
return AGENT_COLOR_PALETTE[Math.abs(hash) % AGENT_COLOR_PALETTE.length];
|
|
241
276
|
}
|
|
242
277
|
//# sourceMappingURL=dashboardMetrics.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboardMetrics.js","sourceRoot":"","sources":["../../dashboardMetrics.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"dashboardMetrics.js","sourceRoot":"","sources":["../../dashboardMetrics.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envCompat.d.ts","sourceRoot":"","sources":["../../envCompat.ts"],"names":[],"mappings":"AAuBA;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"envCompat.d.ts","sourceRoot":"","sources":["../../envCompat.ts"],"names":[],"mappings":"AAuBA;;;;;;GAMG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAkB5E;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAkBrE;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,IAAI,IAAI,CAErD"}
|
|
@@ -26,10 +26,17 @@ const warned = new Set();
|
|
|
26
26
|
* deprecation warning to stderr.
|
|
27
27
|
*/
|
|
28
28
|
export function readEnv(newName, oldName) {
|
|
29
|
-
|
|
29
|
+
// Browser-like environments (and tests simulating them) may have no
|
|
30
|
+
// process.env at all; env reads must degrade to "unset", never throw,
|
|
31
|
+
// because this helper sits on module-load paths (lib/config,
|
|
32
|
+
// lib/portConfig) that browser bundles also import.
|
|
33
|
+
const env = typeof process !== 'undefined' ? process.env : undefined;
|
|
34
|
+
if (!env)
|
|
35
|
+
return undefined;
|
|
36
|
+
const newVal = env[newName];
|
|
30
37
|
if (newVal !== undefined)
|
|
31
38
|
return newVal;
|
|
32
|
-
const oldVal =
|
|
39
|
+
const oldVal = env[oldName];
|
|
33
40
|
if (oldVal !== undefined) {
|
|
34
41
|
warnDeprecated(oldName, newName);
|
|
35
42
|
return oldVal;
|
|
@@ -41,7 +48,8 @@ export function readEnv(newName, oldName) {
|
|
|
41
48
|
* Useful for tests that exercise deprecation paths without triggering reads.
|
|
42
49
|
*/
|
|
43
50
|
export function isLegacyEnvSet(oldName) {
|
|
44
|
-
|
|
51
|
+
const env = typeof process !== 'undefined' ? process.env : undefined;
|
|
52
|
+
return env ? env[oldName] !== undefined : false;
|
|
45
53
|
}
|
|
46
54
|
/**
|
|
47
55
|
* Emit a one-time deprecation warning for an old env var name.
|
|
@@ -54,8 +62,9 @@ export function warnDeprecated(oldName, newName) {
|
|
|
54
62
|
if (warned.has(oldName))
|
|
55
63
|
return;
|
|
56
64
|
warned.add(oldName);
|
|
57
|
-
|
|
58
|
-
|
|
65
|
+
const env = typeof process !== 'undefined' ? process.env : undefined;
|
|
66
|
+
if (env?.AH_QUIET_DEPRECATIONS === '1' ||
|
|
67
|
+
env?.AGENT_HEALTH_QUIET_DEPRECATIONS === '1') {
|
|
59
68
|
return;
|
|
60
69
|
}
|
|
61
70
|
// Use console.warn so this surfaces in normal stderr but doesn't crash
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"envCompat.js","sourceRoot":"","sources":["../../envCompat.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;AAEjC;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,OAAe,EAAE,OAAe;IACtD,
|
|
1
|
+
{"version":3,"file":"envCompat.js","sourceRoot":"","sources":["../../envCompat.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;AAEjC;;;;;;GAMG;AACH,MAAM,UAAU,OAAO,CAAC,OAAe,EAAE,OAAe;IACtD,oEAAoE;IACpE,sEAAsE;IACtE,6DAA6D;IAC7D,oDAAoD;IACpD,MAAM,GAAG,GAAG,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAE3B,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;IAC5B,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC;IAExC,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC;IAC5B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACjC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe;IAC5C,MAAM,GAAG,GAAG,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC;AAClD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,OAAe;IAC7D,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC;QAAE,OAAO;IAChC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAEpB,MAAM,GAAG,GAAG,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IACrE,IACE,GAAG,EAAE,qBAAqB,KAAK,GAAG;QAClC,GAAG,EAAE,+BAA+B,KAAK,GAAG,EAC5C,CAAC;QACD,OAAO;IACT,CAAC;IAED,uEAAuE;IACvE,yEAAyE;IACzE,OAAO,CAAC,IAAI,CACV,qCAAqC,OAAO,gCAAgC,OAAO,IAAI;QACvF,mDAAmD,CACpD,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,8BAA8B;IAC5C,MAAM,CAAC,KAAK,EAAE,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure, isomorphic helpers for "re-run an evaluation run" (duplicate the
|
|
3
|
+
* source run's config into a brand-new run, linked back via `rerunOf`).
|
|
4
|
+
*
|
|
5
|
+
* Split out from the route/service layer so both the server (which owns the
|
|
6
|
+
* real duplication + creation) and the UI (which renders a name preview in
|
|
7
|
+
* the confirm dialog before the user commits) can share the exact same
|
|
8
|
+
* naming logic without an extra network round-trip. No storage/IO here.
|
|
9
|
+
*/
|
|
10
|
+
import type { EvaluationRun, TestCaseSource } from '../types/index.js';
|
|
11
|
+
/**
|
|
12
|
+
* Compute the name for a new run being created as a re-run of `sourceName`.
|
|
13
|
+
*
|
|
14
|
+
* - "My Run" -> "My Run (re-run)"
|
|
15
|
+
* - "My Run (re-run)" -> "My Run (re-run 2)"
|
|
16
|
+
* - "My Run (re-run 2)" -> "My Run (re-run 3)"
|
|
17
|
+
* - undefined/empty -> "Evaluation Run (re-run)"
|
|
18
|
+
*/
|
|
19
|
+
export declare function computeRerunName(sourceName: string | undefined | null): string;
|
|
20
|
+
/**
|
|
21
|
+
* Fields duplicated onto the new run when re-running a source run. Mirrors
|
|
22
|
+
* the subset of {@link EvaluationRun} that `POST /api/storage/evaluation-runs`
|
|
23
|
+
* accepts as input (see server/routes/storage/evaluationRuns.ts) — i.e. the
|
|
24
|
+
* "config" as opposed to results/stats/timestamps, which are always fresh.
|
|
25
|
+
*/
|
|
26
|
+
export interface RerunConfig {
|
|
27
|
+
sources: TestCaseSource[];
|
|
28
|
+
agentKey: string;
|
|
29
|
+
/** Fallback modelId if the agent's own config can't resolve one (legacy). */
|
|
30
|
+
modelId: string;
|
|
31
|
+
judgeModelId?: string;
|
|
32
|
+
evaluatorId?: string;
|
|
33
|
+
headers?: Record<string, string>;
|
|
34
|
+
concurrency?: number;
|
|
35
|
+
agentEndpoint?: string;
|
|
36
|
+
description?: string;
|
|
37
|
+
benchmarkId?: string;
|
|
38
|
+
benchmarkVersion?: number;
|
|
39
|
+
}
|
|
40
|
+
export interface BuildRerunConfigResult {
|
|
41
|
+
config: RerunConfig;
|
|
42
|
+
/**
|
|
43
|
+
* Human-readable notes on which fields were missing on the source run and
|
|
44
|
+
* what explicit default was substituted (empty when the source run's
|
|
45
|
+
* config was fully populated). Surfaced back to the caller (API response
|
|
46
|
+
* -> UI) so a legacy run's best-effort re-run isn't a silent guess.
|
|
47
|
+
*/
|
|
48
|
+
defaultsApplied: string[];
|
|
49
|
+
}
|
|
50
|
+
export interface BuildRerunConfigError {
|
|
51
|
+
error: string;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* User-supplied tweaks to a rerun's config, applied on top of the source
|
|
55
|
+
* run's duplicated config (see {@link applyRerunOverrides}). Every field is
|
|
56
|
+
* optional — an omitted field keeps the source run's value untouched.
|
|
57
|
+
* `null` explicitly clears an optional field back to "use default"
|
|
58
|
+
* (distinct from `undefined`, which means "no change").
|
|
59
|
+
*/
|
|
60
|
+
export interface RerunOverrides {
|
|
61
|
+
agentKey?: string;
|
|
62
|
+
judgeModelId?: string | null;
|
|
63
|
+
evaluatorId?: string | null;
|
|
64
|
+
concurrency?: number;
|
|
65
|
+
/**
|
|
66
|
+
* Swap the test-case source to a different benchmark's current test case
|
|
67
|
+
* list. `null` clears the benchmark association (falls back to the
|
|
68
|
+
* source run's original `sources`). Setting this REPLACES `sources` with
|
|
69
|
+
* a single `{type:'benchmark'}` source — the rerun dialog's "tweak test
|
|
70
|
+
* cases" affordance is scoped to swapping benchmarks, not the full
|
|
71
|
+
* multi-source composer (see NewRunPage for that).
|
|
72
|
+
*/
|
|
73
|
+
benchmarkId?: string | null;
|
|
74
|
+
}
|
|
75
|
+
export interface ApplyRerunOverridesResult {
|
|
76
|
+
config: RerunConfig;
|
|
77
|
+
/** True when at least one override changed the effective config. */
|
|
78
|
+
modified: boolean;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Apply user-supplied overrides on top of a duplicated rerun config. Pure
|
|
82
|
+
* function — returns a new config object plus whether anything actually
|
|
83
|
+
* changed (used to decide whether the new run should be flagged
|
|
84
|
+
* `modified: true` in addition to recording `rerunOf`).
|
|
85
|
+
*
|
|
86
|
+
* Only compares fields that are actually present in `overrides` (`in`
|
|
87
|
+
* check, not just truthiness) so "no overrides object at all" and "an
|
|
88
|
+
* overrides object whose fields happen to equal the source" both correctly
|
|
89
|
+
* report `modified: false`.
|
|
90
|
+
*/
|
|
91
|
+
export declare function applyRerunOverrides(config: RerunConfig, overrides?: RerunOverrides | null): ApplyRerunOverridesResult;
|
|
92
|
+
/**
|
|
93
|
+
* Duplicate a source run's execution config for a re-run, applying explicit,
|
|
94
|
+
* reported defaults for fields missing on legacy run documents. Pure
|
|
95
|
+
* function — no storage access (benchmark-existence checks live in
|
|
96
|
+
* services/evaluationRerun.ts, which needs the storage module).
|
|
97
|
+
*
|
|
98
|
+
* Returns `{ error }` only when the source run is missing a field with no
|
|
99
|
+
* safe default (nothing to run, or no agent to run it against).
|
|
100
|
+
*/
|
|
101
|
+
export declare function buildRerunConfig(sourceRun: EvaluationRun): BuildRerunConfigResult | BuildRerunConfigError;
|
|
102
|
+
//# sourceMappingURL=evaluationRerun.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluationRerun.d.ts","sourceRoot":"","sources":["../../evaluationRerun.ts"],"names":[],"mappings":"AAKA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAU7D;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,CAgB9E;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,WAAW,CAAC;IACpB;;;;;OAKG;IACH,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,WAAW,CAAC;IACpB,oEAAoE;IACpE,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,WAAW,EACnB,SAAS,CAAC,EAAE,cAAc,GAAG,IAAI,GAChC,yBAAyB,CA2C3B;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,aAAa,GACvB,sBAAsB,GAAG,qBAAqB,CAiDhD"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright OpenSearch Contributors
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
const DEFAULT_RUN_NAME = 'Evaluation Run';
|
|
6
|
+
/**
|
|
7
|
+
* Matches a trailing "(re-run)" or "(re-run N)" suffix, case-insensitively,
|
|
8
|
+
* capturing the base name and the optional numeric suffix.
|
|
9
|
+
*/
|
|
10
|
+
const RERUN_SUFFIX_RE = /^(.*?)\s*\(re-run(?:\s+(\d+))?\)$/i;
|
|
11
|
+
/**
|
|
12
|
+
* Compute the name for a new run being created as a re-run of `sourceName`.
|
|
13
|
+
*
|
|
14
|
+
* - "My Run" -> "My Run (re-run)"
|
|
15
|
+
* - "My Run (re-run)" -> "My Run (re-run 2)"
|
|
16
|
+
* - "My Run (re-run 2)" -> "My Run (re-run 3)"
|
|
17
|
+
* - undefined/empty -> "Evaluation Run (re-run)"
|
|
18
|
+
*/
|
|
19
|
+
export function computeRerunName(sourceName) {
|
|
20
|
+
const trimmed = (sourceName || '').trim();
|
|
21
|
+
const base = trimmed || DEFAULT_RUN_NAME;
|
|
22
|
+
const match = base.match(RERUN_SUFFIX_RE);
|
|
23
|
+
if (!match) {
|
|
24
|
+
return `${base} (re-run)`;
|
|
25
|
+
}
|
|
26
|
+
const [, rawBaseName, suffixNumber] = match;
|
|
27
|
+
// A source named literally "(re-run)" / "(re-run 2)" (no prefix) captures
|
|
28
|
+
// an empty baseName — fall back to the default rather than emitting a
|
|
29
|
+
// leading-space name like " (re-run 2)".
|
|
30
|
+
const baseName = rawBaseName.trim() || DEFAULT_RUN_NAME;
|
|
31
|
+
const nextNumber = suffixNumber ? parseInt(suffixNumber, 10) + 1 : 2;
|
|
32
|
+
return `${baseName} (re-run ${nextNumber})`;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Apply user-supplied overrides on top of a duplicated rerun config. Pure
|
|
36
|
+
* function — returns a new config object plus whether anything actually
|
|
37
|
+
* changed (used to decide whether the new run should be flagged
|
|
38
|
+
* `modified: true` in addition to recording `rerunOf`).
|
|
39
|
+
*
|
|
40
|
+
* Only compares fields that are actually present in `overrides` (`in`
|
|
41
|
+
* check, not just truthiness) so "no overrides object at all" and "an
|
|
42
|
+
* overrides object whose fields happen to equal the source" both correctly
|
|
43
|
+
* report `modified: false`.
|
|
44
|
+
*/
|
|
45
|
+
export function applyRerunOverrides(config, overrides) {
|
|
46
|
+
if (!overrides)
|
|
47
|
+
return { config, modified: false };
|
|
48
|
+
let modified = false;
|
|
49
|
+
const next = { ...config };
|
|
50
|
+
if (overrides.agentKey !== undefined && overrides.agentKey !== config.agentKey) {
|
|
51
|
+
next.agentKey = overrides.agentKey;
|
|
52
|
+
modified = true;
|
|
53
|
+
}
|
|
54
|
+
if ('judgeModelId' in overrides) {
|
|
55
|
+
const val = overrides.judgeModelId === null ? undefined : overrides.judgeModelId;
|
|
56
|
+
if (val !== config.judgeModelId) {
|
|
57
|
+
next.judgeModelId = val;
|
|
58
|
+
modified = true;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
if ('evaluatorId' in overrides) {
|
|
62
|
+
const val = overrides.evaluatorId === null ? undefined : overrides.evaluatorId;
|
|
63
|
+
if (val !== config.evaluatorId) {
|
|
64
|
+
next.evaluatorId = val;
|
|
65
|
+
modified = true;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
if (overrides.concurrency !== undefined && overrides.concurrency !== config.concurrency) {
|
|
69
|
+
next.concurrency = overrides.concurrency;
|
|
70
|
+
modified = true;
|
|
71
|
+
}
|
|
72
|
+
if ('benchmarkId' in overrides) {
|
|
73
|
+
const val = overrides.benchmarkId === null ? undefined : overrides.benchmarkId;
|
|
74
|
+
if (val !== config.benchmarkId) {
|
|
75
|
+
next.benchmarkId = val;
|
|
76
|
+
next.benchmarkVersion = undefined; // pinned version no longer applies once the benchmark itself changes
|
|
77
|
+
next.sources = val ? [{ type: 'benchmark', benchmarkId: val }] : config.sources;
|
|
78
|
+
modified = true;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return { config: next, modified };
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Duplicate a source run's execution config for a re-run, applying explicit,
|
|
85
|
+
* reported defaults for fields missing on legacy run documents. Pure
|
|
86
|
+
* function — no storage access (benchmark-existence checks live in
|
|
87
|
+
* services/evaluationRerun.ts, which needs the storage module).
|
|
88
|
+
*
|
|
89
|
+
* Returns `{ error }` only when the source run is missing a field with no
|
|
90
|
+
* safe default (nothing to run, or no agent to run it against).
|
|
91
|
+
*/
|
|
92
|
+
export function buildRerunConfig(sourceRun) {
|
|
93
|
+
const defaultsApplied = [];
|
|
94
|
+
if (!sourceRun.agentKey) {
|
|
95
|
+
return { error: 'Source run is missing agentKey; cannot determine which agent to re-run.' };
|
|
96
|
+
}
|
|
97
|
+
let sources = sourceRun.sources;
|
|
98
|
+
if (!sources || sources.length === 0) {
|
|
99
|
+
const snapshotIds = (sourceRun.testCaseSnapshots || []).map(s => s.id);
|
|
100
|
+
if (snapshotIds.length === 0) {
|
|
101
|
+
return {
|
|
102
|
+
error: 'Source run has no test cases to re-run (missing both sources and testCaseSnapshots).',
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
sources = [{ type: 'test-case-ids', ids: snapshotIds }];
|
|
106
|
+
defaultsApplied.push(`sources -> derived from testCaseSnapshots (${snapshotIds.length} test case id(s); legacy run had no sources recorded)`);
|
|
107
|
+
}
|
|
108
|
+
let concurrency = sourceRun.concurrency;
|
|
109
|
+
if (concurrency == null) {
|
|
110
|
+
concurrency = 1;
|
|
111
|
+
defaultsApplied.push('concurrency -> 1 (default; not set on source run)');
|
|
112
|
+
}
|
|
113
|
+
const config = {
|
|
114
|
+
sources,
|
|
115
|
+
agentKey: sourceRun.agentKey,
|
|
116
|
+
modelId: sourceRun.modelId || '',
|
|
117
|
+
judgeModelId: sourceRun.judgeModelId,
|
|
118
|
+
evaluatorId: sourceRun.evaluatorId,
|
|
119
|
+
headers: sourceRun.headers,
|
|
120
|
+
concurrency,
|
|
121
|
+
agentEndpoint: sourceRun.agentEndpoint,
|
|
122
|
+
description: sourceRun.description,
|
|
123
|
+
benchmarkId: sourceRun.benchmarkId,
|
|
124
|
+
benchmarkVersion: sourceRun.benchmarkVersion,
|
|
125
|
+
};
|
|
126
|
+
// NOTE: evaluatorId/judgeModelId/agentEndpoint/headers/description are
|
|
127
|
+
// legitimately optional on ANY run (not just legacy ones), so leaving them
|
|
128
|
+
// `undefined` is normal behavior, not a legacy-config gap — they are NOT
|
|
129
|
+
// reported in `defaultsApplied` (that list is reserved for cases where we
|
|
130
|
+
// had to fabricate a value because the source run's config was
|
|
131
|
+
// incomplete).
|
|
132
|
+
return { config, defaultsApplied };
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=evaluationRerun.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"evaluationRerun.js","sourceRoot":"","sources":["../../evaluationRerun.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Run-level judge-failure surfacing.
|
|
3
|
+
*
|
|
4
|
+
* Background: an individual case whose evaluator (judge) could not produce
|
|
5
|
+
* a verdict is already visible per-case as the amber "errored" badge (see
|
|
6
|
+
* `lib/runStats.ts` / `components/evals3/ResultStatus.tsx`) -- but nothing
|
|
7
|
+
* aggregates WHY across a run. A run whose judge call fails on every case
|
|
8
|
+
* (e.g. the original incident: the agent-trace-judge provider hard-failing
|
|
9
|
+
* with "needs a runId or trace correlation hint" for every case of a
|
|
10
|
+
* non-instrumented REST agent's 62-case run, before it was fixed to degrade
|
|
11
|
+
* to trajectory-only judging instead) looks IDENTICAL in the runs list to
|
|
12
|
+
* "the agent did badly" -- the errored/failed count is a bare number with no
|
|
13
|
+
* text explaining the cause.
|
|
14
|
+
*
|
|
15
|
+
* `computeJudgeFailureSummary` aggregates the dominant per-case reason into
|
|
16
|
+
* one line, persisted on `run.judgeFailureSummary` (BenchmarkRun /
|
|
17
|
+
* EvaluationRun) and rendered in the runs list + inspector.
|
|
18
|
+
*
|
|
19
|
+
* Two report shapes are recognized (see {@link extractJudgeFailureReason}):
|
|
20
|
+
* - The canonical shape written by `buildEvaluatorErrorPatch('judge_failed',
|
|
21
|
+
* ...)` (services/evaluation/evaluatorError.ts): `metricsStatus: 'error'`
|
|
22
|
+
* with a `traceError` tagged `kind=judge_failed`.
|
|
23
|
+
* - The legacy/back-compat shape some pre-fix and outer-catch code paths
|
|
24
|
+
* still produce: `status: 'failed'` with `llmJudgeReasoning` explicitly
|
|
25
|
+
* naming the judge as the failure point (e.g. "Evaluation failed:
|
|
26
|
+
* Bedrock Judge validation error ..."). Scoped to messages that mention
|
|
27
|
+
* "judge" so a plain agent/network failure sharing the same generic
|
|
28
|
+
* `status: 'failed'` shape isn't mislabeled as a judge problem.
|
|
29
|
+
*/
|
|
30
|
+
export interface CaseFailureLike {
|
|
31
|
+
/** EvaluationReport.status */
|
|
32
|
+
status?: string;
|
|
33
|
+
/** EvaluationReport.metricsStatus */
|
|
34
|
+
metricsStatus?: string;
|
|
35
|
+
/** Set by buildEvaluatorErrorPatch(). */
|
|
36
|
+
traceError?: string;
|
|
37
|
+
/** Option-B BC field; also the legacy shape's error carrier. */
|
|
38
|
+
llmJudgeReasoning?: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Extract the human-readable reason a single case's report represents a
|
|
42
|
+
* JUDGE (not agent) failure, or `undefined` if it doesn't represent one at
|
|
43
|
+
* all (case passed/failed normally, or failed for a non-judge reason such as
|
|
44
|
+
* the agent itself crashing).
|
|
45
|
+
*/
|
|
46
|
+
export declare function extractJudgeFailureReason(report: CaseFailureLike | null | undefined): string | undefined;
|
|
47
|
+
/**
|
|
48
|
+
* Aggregate per-case judge-failure reasons (as returned by
|
|
49
|
+
* {@link extractJudgeFailureReason}, one entry per case in the run,
|
|
50
|
+
* `undefined` for cases that weren't a judge failure) into one run-level
|
|
51
|
+
* summary line.
|
|
52
|
+
*
|
|
53
|
+
* Only fires when judge failures are the DOMINANT outcome (a strict majority,
|
|
54
|
+
* > 50% of total
|
|
55
|
+
* cases) -- a couple of incidental judge failures amid an otherwise-healthy
|
|
56
|
+
* run don't need a run-level banner; the per-case badge already covers
|
|
57
|
+
* that. Ties on the most-frequent distinct message break in first-seen
|
|
58
|
+
* order.
|
|
59
|
+
*
|
|
60
|
+
* @param reasons per-case reasons (or undefined), one entry per case that
|
|
61
|
+
* actually ran (NOT necessarily equal to `total` -- a run in progress may
|
|
62
|
+
* have fewer entries than its planned total).
|
|
63
|
+
* @param total the run's total planned case count (denominator).
|
|
64
|
+
*/
|
|
65
|
+
export declare function computeJudgeFailureSummary(reasons: Array<string | undefined>, total: number): string | undefined;
|
|
66
|
+
//# sourceMappingURL=judgeFailureSummary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"judgeFailureSummary.d.ts","sourceRoot":"","sources":["../../judgeFailureSummary.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qCAAqC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,yCAAyC;IACzC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAKD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAgBxG;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC,EAClC,KAAK,EAAE,MAAM,GACZ,MAAM,GAAG,SAAS,CAmBpB"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright OpenSearch Contributors
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
const PATCH_JUDGE_FAILURE_RE = /kind=judge_failed/;
|
|
6
|
+
const LEGACY_JUDGE_FAILURE_RE = /^Evaluation failed:.*\bjudge\b/i;
|
|
7
|
+
/**
|
|
8
|
+
* Extract the human-readable reason a single case's report represents a
|
|
9
|
+
* JUDGE (not agent) failure, or `undefined` if it doesn't represent one at
|
|
10
|
+
* all (case passed/failed normally, or failed for a non-judge reason such as
|
|
11
|
+
* the agent itself crashing).
|
|
12
|
+
*/
|
|
13
|
+
export function extractJudgeFailureReason(report) {
|
|
14
|
+
if (!report)
|
|
15
|
+
return undefined;
|
|
16
|
+
if (report.metricsStatus === 'error' && PATCH_JUDGE_FAILURE_RE.test(report.traceError || '')) {
|
|
17
|
+
// traceError format: "<Label> (kind=judge_failed): <message>" -- the
|
|
18
|
+
// part after the tag is already the human-readable message.
|
|
19
|
+
const traceError = report.traceError;
|
|
20
|
+
const idx = traceError.indexOf('): ');
|
|
21
|
+
return idx >= 0 ? traceError.slice(idx + 3) : traceError;
|
|
22
|
+
}
|
|
23
|
+
if (report.status === 'failed' && LEGACY_JUDGE_FAILURE_RE.test(report.llmJudgeReasoning || '')) {
|
|
24
|
+
return (report.llmJudgeReasoning || '').replace(/^Evaluation failed:\s*/, '');
|
|
25
|
+
}
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Aggregate per-case judge-failure reasons (as returned by
|
|
30
|
+
* {@link extractJudgeFailureReason}, one entry per case in the run,
|
|
31
|
+
* `undefined` for cases that weren't a judge failure) into one run-level
|
|
32
|
+
* summary line.
|
|
33
|
+
*
|
|
34
|
+
* Only fires when judge failures are the DOMINANT outcome (a strict majority,
|
|
35
|
+
* > 50% of total
|
|
36
|
+
* cases) -- a couple of incidental judge failures amid an otherwise-healthy
|
|
37
|
+
* run don't need a run-level banner; the per-case badge already covers
|
|
38
|
+
* that. Ties on the most-frequent distinct message break in first-seen
|
|
39
|
+
* order.
|
|
40
|
+
*
|
|
41
|
+
* @param reasons per-case reasons (or undefined), one entry per case that
|
|
42
|
+
* actually ran (NOT necessarily equal to `total` -- a run in progress may
|
|
43
|
+
* have fewer entries than its planned total).
|
|
44
|
+
* @param total the run's total planned case count (denominator).
|
|
45
|
+
*/
|
|
46
|
+
export function computeJudgeFailureSummary(reasons, total) {
|
|
47
|
+
if (total <= 0)
|
|
48
|
+
return undefined;
|
|
49
|
+
const judgeFailed = reasons.filter((r) => !!r);
|
|
50
|
+
if (judgeFailed.length === 0)
|
|
51
|
+
return undefined;
|
|
52
|
+
if (judgeFailed.length * 2 <= total)
|
|
53
|
+
return undefined;
|
|
54
|
+
const counts = new Map();
|
|
55
|
+
for (const r of judgeFailed)
|
|
56
|
+
counts.set(r, (counts.get(r) ?? 0) + 1);
|
|
57
|
+
let dominant = judgeFailed[0];
|
|
58
|
+
let dominantCount = 0;
|
|
59
|
+
for (const [reason, count] of counts) {
|
|
60
|
+
if (count > dominantCount) {
|
|
61
|
+
dominant = reason;
|
|
62
|
+
dominantCount = count;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
const n = judgeFailed.length;
|
|
66
|
+
return `${n}/${total} case${n === 1 ? '' : 's'} failed at the judge step: ${dominant}`;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=judgeFailureSummary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"judgeFailureSummary.js","sourceRoot":"","sources":["../../judgeFailureSummary.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA2CH,MAAM,sBAAsB,GAAG,mBAAmB,CAAC;AACnD,MAAM,uBAAuB,GAAG,iCAAiC,CAAC;AAElE;;;;;GAKG;AACH,MAAM,UAAU,yBAAyB,CAAC,MAA0C;IAClF,IAAI,CAAC,MAAM;QAAE,OAAO,SAAS,CAAC;IAE9B,IAAI,MAAM,CAAC,aAAa,KAAK,OAAO,IAAI,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC,EAAE,CAAC;QAC7F,qEAAqE;QACrE,4DAA4D;QAC5D,MAAM,UAAU,GAAG,MAAM,CAAC,UAAW,CAAC;QACtC,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IAC3D,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,iBAAiB,IAAI,EAAE,CAAC,EAAE,CAAC;QAC/F,OAAO,CAAC,MAAM,CAAC,iBAAiB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,0BAA0B,CACxC,OAAkC,EAClC,KAAa;IAEb,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACjC,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC/C,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK;QAAE,OAAO,SAAS,CAAC;IAEtD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,WAAW;QAAE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACrE,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;QACrC,IAAI,KAAK,GAAG,aAAa,EAAE,CAAC;YAC1B,QAAQ,GAAG,MAAM,CAAC;YAClB,aAAa,GAAG,KAAK,CAAC;QACxB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC;IAC7B,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,8BAA8B,QAAQ,EAAE,CAAC;AACzF,CAAC"}
|