{% extends "base.html" %} {% from "_macros.html" import badge, counts_line, legend %} {% block main %}
Each cell shows how one inference engine's own tool-call and reasoning parsers handle one model family's recorded outputs, parsed once without streaming and once per token-chunking strategy. Pass rates are strict; whitespace-only differences are counted separately as soft passes. {% if latest %}Latest run: .{% endif %}
{% if not matrix.runs %}No results files were found. Run canitoolcall run --engine <engine>, then
canitoolcall matrix. This site never shows data that did not come from a real run.
| Family | {% for run in matrix.runs %}{{ run.engine.name }} {{ run.engine.version }} run | {% endfor %}|
|---|---|---|
{{ family_names.get(fam, fam) }}
{% if family_names.get(fam) %}{{ fam }}{% endif %}
|
{% for run in matrix.runs %}
{% set c = matrix.cell(fam, run.engine.name, run.engine.version) %}
{% if c is none %}
not run | {% else %}
{{ badge(c.status) }}
{% if c.pass_rate is not none %}{{ c.pass_rate|pct }}{% endif %}
{{ counts_line(c.counts) }}
{% if c.weak_checks %}
|
{% endif %}
{% endfor %}
Over all supported fixtures of each run. A fixture counts once per check: its worst result over the non-streaming parse and every realistic chunking strategy.
| Check | {% for run in matrix.runs %}{{ run.engine.name }} {{ run.engine.version }} | {% endfor %}|
|---|---|---|
{{ name }} |
{% for run in matrix.runs %}
{% set k = engine_checks[(run.engine.name, run.engine.version)].get(name) %}
{% if k is none %}
n/a | {% else %}{{ k.pass_rate|pct }} {{ k.counts["pass"] }}/{{ k.applied }}{% if k.counts["soft_pass"] %} ({{ k.counts["soft_pass"] }} soft){% endif %} | {% endif %} {% endfor %}
| Engine | Version | Commit | Finished | Platform | Python | canitoolcall | Fixtures digest | Strategies | Results |
|---|---|---|---|---|---|---|---|---|---|
| {{ run.engine.name }} | {{ run.engine.version }} | {% if run.engine.commit %}{{ run.engine.commit|short }}{% else %}n/a{% endif %} |
{{ run.run.platform }} | {{ run.run.python }} | {{ run.canitoolcall_version }} | {{ run.run.fixtures_digest|short }} |
{{ run.run.strategies|join(", ") }}{% if run.run.synthetic_strategies %} not counted: {{ run.run.synthetic_strategies|join(", ") }}{% endif %} |
{% set f = data_files.get((run.engine.name, run.engine.version)) %}{% if f %}JSON{% endif %} |