{% from 'runs/_runtime.html' import what_ran %} {% extends "base.html" %} {% block title %}Runs — Nullius{% endblock %} {% block head %}{% endblock %} {# Value filter for one column: a caret in the header opening a checkbox list. Values start all-checked; unchecking hides the matching rows. #} {% macro filter_button(col) %} {% endmacro %} {% block body %}
{# Agents only: a control's trials are a check on the tasks, not results, and are shown as their launch's task checks. #}{{ n_agent_runs }} runs·{{ n_trials }} trials
{%- if workspace %}in {{ workspace.label }}{% endif -%} {{ launches|length }} launch{{ '' if launches|length == 1 else 'es' }} {%- for s, n in states|dictsort %}{{ n }} {{ s }}{% endfor -%} task checks {{ n_checked }} of {{ launches|length }}
| Agent | State | Adjusted solve rate | Outcomes | Solved | Tokens | Cost | Time | |
|---|---|---|---|---|---|---|---|---|
{{ r.control }} task check
{{ r.job_id }} |
{{ r.state }} |
{%- if v %}{{ v.label }}{% else %}{{ 'must reject every task' if r.control == 'nop' else 'must pass every task' }}{% endif %} |
{% if j and j.trials %}{% for k in ORDER %}{% if j.counts[k] %}{% endif %}{% endfor %}{% else %}{% endif %} | — | {% if j and (j.total_input_tokens or j.total_output_tokens) %}{{ (j.total_input_tokens + j.total_output_tokens)|tokens(j.kind) }}{% else %}—{% endif %} | {% if j and j.total_cost_usd is not none %}{{ j.total_cost_usd|usd(j.kind) }}{% else %}—{% endif %} | {% if j and j.duration_min %}{{ j.duration_min|runtime }}{% else %}—{% endif %} | Open → |
{{ j.agent_label if j and j.agent_label else r.job_id[L.prefix|length - 1:] if L.prefix.endswith('*') and r.job_id.startswith(L.prefix[:-1]) else r.job_id }}
{%- if j and j.runner %} {{ what_ran(j) }}{% elif j and j.agent_version %} {{ j.agent_version }}{% endif %}
{{ r.job_id }} |
{{ r.state }} | {% if j and j.scored_only %}
{{ '%.2f'|format(j.mean_score) }}
{%- elif j and j.adjusted_solve_rate is not none %}
{{ j.adjusted_solve_rate|pct }}
{%- else %}— {% endif %}
{%- if j and j.trials and not j.scored_only and j.counts.unknown and j.counts.unknown * 4 >= j.trials|length %}⚠ {{ j.counts.unknown }} of {{ j.trials|length }} have no verdict{% endif %} |
{% if j and j.trials %}{% for k in ORDER %}{% if j.counts[k] %}{% endif %}{% endfor %}{% else %}{% endif %} | {% if j and j.scored_only %}—{% elif j %}{{ j.n_resolved }}/{{ j.n_planned or j.trials|length }}{% else %}0{% if g.n_tasks %}/{{ g.n_tasks }}{% endif %}{% endif %} | {% if j and (j.total_input_tokens or j.total_output_tokens) %}{{ (j.total_input_tokens + j.total_output_tokens)|tokens(j.kind) }}{% else %}—{% endif %} | {% if j and j.total_cost_usd is not none %}{{ j.total_cost_usd|usd(j.kind) }}{% else %}—{% endif %} | {% if j and j.duration_min %}{{ j.duration_min|runtime }}{% else %}—{% endif %} | {% if r.state != 'not in this workspace' %}{{ 'Open to resume' if r.state == 'paused' else 'Open →' }}{% endif %} |
| Run | Agent{{ filter_button('agent') }} | Version | Start | End | Time | Model{{ filter_button('model') }} | Dataset{{ filter_button('dataset') }} | Mix | Trials | Solved | Raw | Adjusted | Infra errors | Broke tests | Tokens | Cost | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| {{ j.job_id }} {%- if j.is_preparing %} preparing {%- elif j.is_running and ended[j.job_id] %} {{ ended[j.job_id][0] }} {%- elif j.is_running %} running{% endif %} | {{ j.agent_label or '—' }} {%- if j.is_control %} control{% endif %} | {% if j.runner %}{{ what_ran(j) }}{% elif j.agent_version %}{{ j.agent_version }}{% else %}—{% endif %} | {{ j.started_at|dt }} | {{ j.finished_at|dt }} | {%- if j.duration_min %}{{ j.duration_min|runtime }}{% else %}—{% endif -%} | {{ j.model_name }} | {{ j.dataset|dsname }} | {# A control's mix is its verdict in the control colour — behaved against not — and sorts below every agent row (-1) so the column orders agents by what they solved and leaves the controls apart. #} {% if v %}{% else %} | {% endif %} {# present/planned exposes a partial run; the tooltip carries Harbor's retry and error counters, which have nowhere else to live. #} | {{- j.trials|length }}{% if j.n_planned and j.n_planned != j.trials|length %}/{{ j.n_planned }}{% endif -%} | {% if v %} {# A control has a verdict, not a score: Solved says whether it behaved and the two rates show absence with the verdict in their tooltip. All three sort at -2 — below the agents and below a run nothing scored (-1) — so the columns keep the controls apart. #} {% set ctl_title = v.control ~ " is a Harbor control: it must be " ~ v.expected ~ " on every task — " ~ v.label ~ ". Not a score." %}{{ v.label }} | — | — | {% elif j.scored_only %} {# A benchmark that gives a score and no pass or fail: the mean score where the rate would be, and nothing solved #} {% set score_title = "This benchmark gives a score and no pass or fail: the mean score" ~ (" over its " ~ j.n_scored_parts ~ " scored" if j.n_scored_parts else "") ~ ", no solve rate" %}— | — | {{ '%.2f'|format(j.mean_score) }} | {% else %}{{ j.n_resolved }} | {# A run nothing scored (a standalone trajectory, a span export) has no rate, not a rate of zero: it shows absence and sorts below a measured 0%. #}{{ j.raw_solve_rate|pct }} | {{ j.adjusted_solve_rate|pct }} | {% endif %} {# Zero infra errors is a measured fact, and a good one — every trial has an outcome, so the count is always knowable. #}{{ j.n_infra }} | {# Zero regressions is only a fact for a benchmark that checks for them. Where none were reported the column shows absence, not a reassuring 0. #}{%- if j.n_regressions %}⚠ {{ j.n_regressions }} {%- elif j.reports_regressions %}0 {%- else %}—{% endif -%} | {{ (j.total_input_tokens + j.total_output_tokens)|tokens(j.kind) }} | {# A control's real $0.00 sorts as zero; an unmeasured agent sorts last. #}{{ j.total_cost_usd|usd(j.kind) }} |
No runs contain that outcome.
{{ d.info.what }}
{% if d.info.scored %}How it's scored {{ d.info.scored }}
{% endif %} {% if d.info.note %}{{ d.info.note }}
{% endif %}