{% extends "base.html" %} {% from "_macros.html" import badge, counts_line, legend %} {% block main %}

Tool-call parser conformance matrix

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 yet

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.

{% else %} {{ legend() }}

Families × engines

{% for run in matrix.runs %} {% endfor %} {% for fam in matrix.families %} {% for run in matrix.runs %} {% set c = matrix.cell(fam, run.engine.name, run.engine.version) %} {% if c is none %} {% else %} {% endif %} {% endfor %} {% endfor %}
Headline status, strict pass rate and case counts per family and engine version. Checks that did not pass on every case are listed in each cell; select a cell for the failing fixtures.
Family {{ run.engine.name }} {{ run.engine.version }} run
{{ family_names.get(fam, fam) }} {% if family_names.get(fam) %}{{ fam }}{% endif %} not run {{ badge(c.status) }} {% if c.pass_rate is not none %}{{ c.pass_rate|pct }}{% endif %} {{ counts_line(c.counts) }} {% if c.weak_checks %}
    {% for k in c.weak_checks %}
  • {{ k.check }} {{ k.counts["pass"] }}/{{ k.applied }}{% if k.counts["soft_pass"] %} ({{ k.counts["soft_pass"] }} soft){% endif %}
  • {% endfor %}
{% endif %} {% if c.stress_failures %}synthetic-strategy failures (not counted): {{ c.stress_failures }}{% endif %}

Pass rate by check

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.

{% for run in matrix.runs %}{% endfor %} {% for name in all_checks %} {% for run in matrix.runs %} {% set k = engine_checks[(run.engine.name, run.engine.version)].get(name) %} {% if k is none %} {% else %} {% endif %} {% endfor %} {% endfor %}
Strict pass rate per check and engine version (strict passes / fixtures the check applied to; soft passes in parentheses).
Check{{ run.engine.name }} {{ run.engine.version }}
{{ name }}n/a {{ k.pass_rate|pct }} {{ k.counts["pass"] }}/{{ k.applied }}{% if k.counts["soft_pass"] %} ({{ k.counts["soft_pass"] }} soft){% endif %}

Runs

{% for run in matrix.runs %} {% endfor %}
The run behind each column. When an engine version was run more than once, the latest run is shown.
EngineVersionCommit FinishedPlatformPython canitoolcallFixtures digestStrategies 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 %}
{% endif %} {% endblock %}