@hackerrank/astra-cli 0.1.12 → 0.1.14

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.
Files changed (2) hide show
  1. package/package.json +1 -1
  2. package/src/report.html +11 -5
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hackerrank/astra-cli",
3
- "version": "0.1.12",
3
+ "version": "0.1.14",
4
4
  "description": "Minimal zero-dependency AI coding agent for the HackerRank AI Gateway.",
5
5
  "type": "module",
6
6
  "bin": {
package/src/report.html CHANGED
@@ -285,9 +285,6 @@
285
285
  { key: "slug", label: "Model · reasoning", render: function (r) { return esc(r.slug); } },
286
286
  { key: "runs", label: "Runs", render: function (r) { return fmt(r.runs); } },
287
287
  { key: "average_score", label: "Score", render: function (r) { return r.average_score == null ? '<span class="n-a">n/a</span>' : fmt1(r.average_score) + "%"; } },
288
- { key: "criteria_pass_rate", label: "Test cases", render: function (r) { return r.criteria_pass_rate == null ? '<span class="n-a">n/a</span>' : pct(r.criteria_pass_rate); } },
289
- { key: "verification_runs", label: "Verified", render: function (r) { return fmt(r.verification_runs) + " / " + fmt(r.runs); } },
290
- { key: "hard_passes", label: "Hard passes", render: function (r) { return fmt(r.hard_passes); } },
291
288
  { key: "sum_steps", label: "Total steps", render: function (r) { return fmt(r.sum_steps); } },
292
289
  { key: "sum_elapsed_seconds", label: "Time taken", render: function (r) { return fmt(r.sum_elapsed_seconds) + "s"; } },
293
290
  { key: "sum_tokens", label: "Tokens", render: function (r) { return fmt(r.sum_tokens); } },
@@ -315,7 +312,12 @@
315
312
  var selector = document.getElementById("verifier-model-select");
316
313
  if (!container) return;
317
314
  var matrix = DATA.verifier_matrix || { models: [], criteria: [] };
318
- var selected = matrix.models[0] || "";
315
+ // Prefer a model with actual verifier evidence. Alphabetical-first often
316
+ // selects an unscored gateway failure and makes a healthy report appear
317
+ // empty on first open.
318
+ var selected = matrix.models.find(function (model) {
319
+ return matrix.criteria.some(function (criterion) { return criterion.cells[model]; });
320
+ }) || matrix.models[0] || "";
319
321
  function draw() {
320
322
  container.innerHTML = '<thead><tr><th>Test case</th><th>Available</th><th>Earned</th><th>Result</th></tr></thead><tbody>' + matrix.criteria.map(function (criterion) {
321
323
  var cell = criterion.cells[selected];
@@ -325,7 +327,11 @@
325
327
  return '<tr><td>' + esc(criterion.title || criterion.id) + '</td><td>' + fmt1(max) + '</td><td>' + fmt1(earned) + '</td><td>' + esc(status) + '</td></tr>';
326
328
  }).join('') + '</tbody>';
327
329
  }
328
- matrix.models.forEach(function (model) { selector.appendChild(el("option", { value: model }, esc(model))); });
330
+ matrix.models.forEach(function (model) {
331
+ var option = el("option", { value: model }, esc(model));
332
+ if (model === selected) option.selected = true;
333
+ selector.appendChild(option);
334
+ });
329
335
  selector.addEventListener("change", function () { selected = selector.value; draw(); });
330
336
  if (!matrix.criteria.length) {
331
337
  container.innerHTML = '<tbody><tr><td class="muted">No verifier criteria have produced results yet.</td></tr></tbody>';