@axlsdk/studio 0.17.9 → 0.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cli.cjs CHANGED
@@ -134,7 +134,10 @@ function redactEvalItem(item) {
134
134
  detailsOut[name] = {
135
135
  score: detail.score,
136
136
  ...detail.duration !== void 0 ? { duration: detail.duration } : {},
137
- ...detail.cost !== void 0 ? { cost: detail.cost } : {}
137
+ ...detail.cost !== void 0 ? { cost: detail.cost } : {},
138
+ // `skipped` is a structural boolean (the `applies` predicate verdict),
139
+ // not user/LLM content — preserve it so the client's N/A chip renders.
140
+ ...detail.skipped !== void 0 ? { skipped: detail.skipped } : {}
138
141
  // metadata deliberately omitted — may contain LLM scorer reasoning
139
142
  };
140
143
  }
@@ -1828,8 +1831,13 @@ function createEvalRoutes(connMgr, evalLoader) {
1828
1831
  const first = results[0];
1829
1832
  const partial2 = results.length < runs;
1830
1833
  const failureMsg = runFailure ? redactErrorMessage(runFailure, redactOn) || String(runFailure) || void 0 : void 0;
1834
+ const aggDegraded = unionDegradedScorers(results);
1831
1835
  const result = {
1832
1836
  ...first,
1837
+ summary: {
1838
+ ...first.summary,
1839
+ ...aggDegraded.length > 0 ? { degraded: aggDegraded } : {}
1840
+ },
1833
1841
  _multiRun: {
1834
1842
  aggregate,
1835
1843
  allRuns: results,
@@ -2087,6 +2095,23 @@ function createEvalRoutes(connMgr, evalLoader) {
2087
2095
  }
2088
2096
  return { app: app5, closeActiveRuns };
2089
2097
  }
2098
+ function unionDegradedScorers(results) {
2099
+ const byScorer = /* @__PURE__ */ new Map();
2100
+ for (const run of results) {
2101
+ const degraded = run.summary?.degraded;
2102
+ if (!Array.isArray(degraded)) continue;
2103
+ for (const d of degraded) {
2104
+ const existing = byScorer.get(d.scorer);
2105
+ if (!existing) {
2106
+ byScorer.set(d.scorer, { ...d, runsAffected: 1 });
2107
+ } else {
2108
+ const worse = d.rate > existing.rate ? d : existing;
2109
+ byScorer.set(d.scorer, { ...worse, runsAffected: existing.runsAffected + 1 });
2110
+ }
2111
+ }
2112
+ }
2113
+ return [...byScorer.values()];
2114
+ }
2090
2115
 
2091
2116
  // src/server/routes/playground.ts
2092
2117
  var import_hono11 = require("hono");