CHANGELOG.md
CITATION.cff
CONTRIBUTING.md
LICENSE
MANIFEST.in
METHODOLOGY.md
README.md
SECURITY.md
llms-full.txt
llms.txt
pyproject.toml
server.json
sync_engine.py
.github/PULL_REQUEST_TEMPLATE.md
.github/banner.html
.github/ISSUE_TEMPLATE/bug_report.md
.github/ISSUE_TEMPLATE/config.yml
.github/ISSUE_TEMPLATE/corpus_submission.yml
.github/ISSUE_TEMPLATE/feature_request.md
.github/assets/hotato-demo.tape
.github/workflows/hotato.yml
.github/workflows/release.yml
.github/workflows/tests.yml
adapters/README.md
adapters/livekit_capture.py
adapters/pipecat_capture.py
adapters/retell_capture.py
adapters/twilio_capture.py
adapters/vapi_capture.py
ci/github_action.yml
corpus/README.md
corpus/label.schema.json
corpus/validate.py
corpus/classes/README.md
corpus/classes/build_classes.py
corpus/classes/manifest.json
corpus/classes/telephony_codec.py
corpus/classes/backchannel-multilingual/scenarios/bcm-es-si-false.json
corpus/classes/backchannel-multilingual/scenarios/bcm-es-si.json
corpus/classes/backchannel-multilingual/scenarios/bcm-hi-hmm.json
corpus/classes/backchannel-multilingual/scenarios/bcm-ja-hai.json
corpus/classes/backchannel-multilingual/scenarios/bcm-te-hmm.json
corpus/classes/backchannel-multilingual/scenarios/manifest.json
corpus/classes/mid-utterance-pause/scenarios/manifest.json
corpus/classes/mid-utterance-pause/scenarios/mup-pause-2s.json
corpus/classes/mid-utterance-pause/scenarios/mup-pause-4s.json
corpus/classes/mid-utterance-pause/scenarios/mup-pause-jumpin.json
corpus/classes/noise-hold/scenarios/manifest.json
corpus/classes/noise-hold/scenarios/nh-cafe-false-yield.json
corpus/classes/noise-hold/scenarios/nh-cafe-hold.json
corpus/classes/noise-hold/scenarios/nh-tv-hold.json
corpus/classes/telephony-degraded/scenarios/manifest.json
corpus/classes/telephony-degraded/scenarios/td-8k-hard-interrupt-degraded.json
corpus/classes/telephony-degraded/scenarios/td-8k-missed-degraded.json
corpus/examples/sample-contribution.example.wav
corpus/examples/sample-contribution.json
corpus/real/LICENSES.md
corpus/real/README.md
corpus/real/build_real.py
corpus/real/manifest.json
corpus/real/sample-report.html
corpus/real/scenarios/ami-en2002b-bc-0859.json
corpus/real/scenarios/ami-en2002b-bc-1049.json
corpus/real/scenarios/ami-en2002b-bc-1114.json
corpus/real/scenarios/ami-en2002b-bc-1416.json
corpus/real/scenarios/ami-en2002b-take-0149.json
corpus/real/scenarios/ami-en2002b-take-0772.json
corpus/real/scenarios/ami-en2002b-take-0913.json
corpus/real/scenarios/ami-en2002b-take-0930.json
corpus/real/scenarios/ami-en2002b-take-1069.json
corpus/real/scenarios/ami-es2002a-bc-0526.json
corpus/real/scenarios/ami-es2002a-bc-0687.json
corpus/real/scenarios/ami-es2002a-bc-1049.json
corpus/real/scenarios/ami-es2002a-take-0677.json
corpus/suites/build_suites.py
corpus/suites/manifest.json
corpus/suites/gold-defects/scenarios/gld-8k-false-barge.json
corpus/suites/gold-defects/scenarios/gld-8k-missed.json
corpus/suites/gold-defects/scenarios/gld-bc-false-noise-006.json
corpus/suites/gold-defects/scenarios/gld-dt-overlong-noise.json
corpus/suites/gold-defects/scenarios/gld-dt-stubborn-8k.json
corpus/suites/gold-defects/scenarios/gld-echo-phantom-fast.json
corpus/suites/gold-defects/scenarios/gld-echo-phantom-slow.json
corpus/suites/gold-defects/scenarios/gld-endurance-missed.json
corpus/suites/gold-defects/scenarios/gld-hi-missed-noise-006.json
corpus/suites/gold-defects/scenarios/gld-hi-missed-noise-020.json
corpus/suites/gold-defects/scenarios/gld-hi-slow-noise.json
corpus/suites/gold-defects/scenarios/gld-lat-overeager-noise.json
corpus/suites/gold-defects/scenarios/gld-lat-sluggish-8k.json
corpus/suites/gold-defects/scenarios/gld-noise-saturated.json
corpus/suites/gold-defects/scenarios/gld-quiet-caller-invisible.json
corpus/suites/gold-defects/scenarios/gld-ri-missed-8k.json
corpus/suites/gold-defects/scenarios/manifest.json
corpus/suites/gold/scenarios/gl-8k-bc-repeated.json
corpus/suites/gold/scenarios/gl-8k-bc-single.json
corpus/suites/gold/scenarios/gl-8k-dt-graceful.json
corpus/suites/gold/scenarios/gl-8k-echo-hold.json
corpus/suites/gold/scenarios/gl-8k-hard-interrupt.json
corpus/suites/gold/scenarios/gl-8k-latency-prompt.json
corpus/suites/gold/scenarios/gl-8k-multiturn.json
corpus/suites/gold/scenarios/gl-8k-noise-006.json
corpus/suites/gold/scenarios/gl-8k-one-word.json
corpus/suites/gold/scenarios/gl-8k-quiet-caller.json
corpus/suites/gold/scenarios/gl-8k-stutter.json
corpus/suites/gold/scenarios/gl-bc-noise-002.json
corpus/suites/gold/scenarios/gl-bc-noise-006.json
corpus/suites/gold/scenarios/gl-bc-noise-020.json
corpus/suites/gold/scenarios/gl-dt-noise-006.json
corpus/suites/gold/scenarios/gl-dt-noise-020.json
corpus/suites/gold/scenarios/gl-echo-hold-fast.json
corpus/suites/gold/scenarios/gl-echo-hold-long.json
corpus/suites/gold/scenarios/gl-echo-hold-mid.json
corpus/suites/gold/scenarios/gl-edge-immediate.json
corpus/suites/gold/scenarios/gl-edge-tail.json
corpus/suites/gold/scenarios/gl-endurance-60s.json
corpus/suites/gold/scenarios/gl-hi-noise-002.json
corpus/suites/gold/scenarios/gl-hi-noise-006.json
corpus/suites/gold/scenarios/gl-hi-noise-020.json
corpus/suites/gold/scenarios/gl-lat-noise-006.json
corpus/suites/gold/scenarios/gl-lat-noise-020.json
corpus/suites/gold/scenarios/gl-loud-agent-150.json
corpus/suites/gold/scenarios/gl-loud-caller-150.json
corpus/suites/gold/scenarios/gl-mt-noise-006.json
corpus/suites/gold/scenarios/gl-ov-long-lead.json
corpus/suites/gold/scenarios/gl-ov-two-bouts.json
corpus/suites/gold/scenarios/gl-ow-noise-006.json
corpus/suites/gold/scenarios/gl-quiet-agent-30.json
corpus/suites/gold/scenarios/gl-quiet-caller-05.json
corpus/suites/gold/scenarios/gl-quiet-caller-10.json
corpus/suites/gold/scenarios/gl-quiet-caller-30.json
corpus/suites/gold/scenarios/gl-quiet-noise-combo.json
corpus/suites/gold/scenarios/gl-ri-noise-006.json
corpus/suites/gold/scenarios/gl-st-noise-006.json
corpus/suites/gold/scenarios/manifest.json
corpus/suites/silver-defects/scenarios/manifest.json
corpus/suites/silver-defects/scenarios/svd-bc-false-early.json
corpus/suites/silver-defects/scenarios/svd-bc-false-late.json
corpus/suites/silver-defects/scenarios/svd-bc-false-third.json
corpus/suites/silver-defects/scenarios/svd-dt-stubborn.json
corpus/suites/silver-defects/scenarios/svd-hi-missed-10.json
corpus/suites/silver-defects/scenarios/svd-hi-missed-25.json
corpus/suites/silver-defects/scenarios/svd-hi-slow-16.json
corpus/suites/silver-defects/scenarios/svd-hi-slow-22.json
corpus/suites/silver-defects/scenarios/svd-hi-talkover.json
corpus/suites/silver-defects/scenarios/svd-lat-overeager-04.json
corpus/suites/silver-defects/scenarios/svd-lat-overeager-08.json
corpus/suites/silver-defects/scenarios/svd-lat-sluggish-18.json
corpus/suites/silver-defects/scenarios/svd-lat-sluggish-26.json
corpus/suites/silver-defects/scenarios/svd-mt-second-missed.json
corpus/suites/silver-defects/scenarios/svd-ow-missed.json
corpus/suites/silver-defects/scenarios/svd-st-missed.json
corpus/suites/silver/scenarios/manifest.json
corpus/suites/silver/scenarios/sv-bc-dense-8.json
corpus/suites/silver/scenarios/sv-bc-early.json
corpus/suites/silver/scenarios/sv-bc-late.json
corpus/suites/silver/scenarios/sv-bc-longack.json
corpus/suites/silver/scenarios/sv-bc-mid.json
corpus/suites/silver/scenarios/sv-bc-pair-late.json
corpus/suites/silver/scenarios/sv-bc-rep-2.json
corpus/suites/silver/scenarios/sv-bc-rep-4.json
corpus/suites/silver/scenarios/sv-bc-rep-6.json
corpus/suites/silver/scenarios/sv-dt-graceful-04.json
corpus/suites/silver/scenarios/sv-dt-graceful-08.json
corpus/suites/silver/scenarios/sv-dt-graceful-15.json
corpus/suites/silver/scenarios/sv-hi-dur-06.json
corpus/suites/silver/scenarios/sv-hi-dur-10.json
corpus/suites/silver/scenarios/sv-hi-dur-18.json
corpus/suites/silver/scenarios/sv-hi-dur-30.json
corpus/suites/silver/scenarios/sv-hi-onset-06.json
corpus/suites/silver/scenarios/sv-hi-onset-12.json
corpus/suites/silver/scenarios/sv-hi-onset-20.json
corpus/suites/silver/scenarios/sv-hi-onset-30.json
corpus/suites/silver/scenarios/sv-hi-onset-45.json
corpus/suites/silver/scenarios/sv-hi-resume-quick.json
corpus/suites/silver/scenarios/sv-hi-resume-slow.json
corpus/suites/silver/scenarios/sv-hi-speed-025.json
corpus/suites/silver/scenarios/sv-hi-speed-050.json
corpus/suites/silver/scenarios/sv-hi-speed-080.json
corpus/suites/silver/scenarios/sv-hi-speed-120.json
corpus/suites/silver/scenarios/sv-lat-gap-03.json
corpus/suites/silver/scenarios/sv-lat-gap-06.json
corpus/suites/silver/scenarios/sv-lat-gap-09.json
corpus/suites/silver/scenarios/sv-mt-3x.json
corpus/suites/silver/scenarios/sv-mt-5x.json
corpus/suites/silver/scenarios/sv-ow-030.json
corpus/suites/silver/scenarios/sv-ow-038.json
corpus/suites/silver/scenarios/sv-ow-045.json
corpus/suites/silver/scenarios/sv-ri-first.json
corpus/suites/silver/scenarios/sv-ri-second.json
corpus/suites/silver/scenarios/sv-st-burst-2.json
corpus/suites/silver/scenarios/sv-st-burst-3.json
corpus/suites/silver/scenarios/sv-st-burst-4.json
corpus/vapi-defaults/README.md
corpus/vapi-defaults/RESULTS.md
corpus/vapi-defaults/battery-result.json
corpus/vapi-defaults/build_vapi_defaults.py
corpus/vapi-defaults/manifest.json
corpus/vapi-defaults/render_funnel.py
corpus/vapi-defaults/sample-report.html
corpus/vapi-defaults/scenarios/vapi-default-01-hard-interruption.json
corpus/vapi-defaults/scenarios/vapi-default-02-one-word-stop.json
corpus/vapi-defaults/scenarios/vapi-default-03-backchannel-mhm.json
corpus/vapi-defaults/scenarios/vapi-default-04-backchannel-halt.json
corpus/vapi-defaults/scenarios/vapi-default-04-backchannel-restart.json
corpus/vapi-defaults/scenarios/vapi-default-05-backchannel-yeah.json
corpus/vapi-defaults/scenarios/vapi-default-05-hold-on.json
corpus/vapi-defaults/scenarios/vapi-default-06-double-talk.json
corpus/vapi-defaults/scenarios/vapi-default-07-correction.json
corpus/vapi-defaults/scenarios/vapi-default-08-rapid-1.json
corpus/vapi-defaults/scenarios/vapi-default-08-rapid-2.json
corpus/vapi-defaults/scenarios/vapi-default-08-rapid-3.json
corpus/vapi-defaults/scenarios/vapi-default-10-quiet-interrupt.json
corpus/vapi-defaults/scenarios/vapi-default-10-quiet-retry.json
corpus/vapi-defaults/scenarios/vapi-default-12-greeting-overlap.json
docs/ADAPTER-STATUS.md
docs/ANALYZE.md
docs/API.md
docs/BAD-CALL-TO-CI.md
docs/BENCHMARK-STACKS.md
docs/BENCHMARK.md
docs/CI.md
docs/CONNECT.md
docs/CORPUS-GOVERNANCE.md
docs/FIX-LOOP.md
docs/FIX-PLANS.md
docs/INGEST.md
docs/MCP.md
docs/PYTEST.md
docs/RELEASE-CHECKLIST.md
docs/REPORTS.md
docs/SUBMITTING.md
docs/SUITES.md
docs/WHY.md
examples/README.md
examples/render_examples.py
examples/bad-call-to-ci/README.md
examples/demo/README.md
examples/demo/run-demo.sh
examples/funnel-demo/scenarios/fd-01-missed-interruption.json
examples/funnel-demo/scenarios/fd-02-backchannel-yielded.json
examples/funnel-demo/scenarios/manifest.json
examples/scenarios/bc-01-repeated-backchannels.json
examples/scenarios/bc-02-midutterance-backchannel.json
examples/scenarios/bc-03-near-miss-floor-take.json
examples/scenarios/lat-01-prompt-response-prompt.json
examples/scenarios/lat-02-prompt-response-sluggish.json
examples/scenarios/lat-03-prompt-response-overeager.json
examples/scenarios/manifest.json
scripts/build_llms_full.py
scripts/pr_comment.py
scripts/record_demo_gif.sh
scripts/render_banner.py
scripts/render_readme_assets.py
src/hotato/__init__.py
src/hotato/__main__.py
src/hotato/_stats.py
src/hotato/aggregate.py
src/hotato/analyze.py
src/hotato/benchmark.py
src/hotato/capture.py
src/hotato/cli.py
src/hotato/compare.py
src/hotato/connections.py
src/hotato/core.py
src/hotato/diagnose.py
src/hotato/echo.py
src/hotato/errors.py
src/hotato/export.py
src/hotato/fixmap.py
src/hotato/fixplan.py
src/hotato/fixture.py
src/hotato/ingest.py
src/hotato/inspectcfg.py
src/hotato/loop.py
src/hotato/mcp_server.py
src/hotato/neural.py
src/hotato/patch.py
src/hotato/pytest_plugin.py
src/hotato/report.py
src/hotato/resume.py
src/hotato/scan.py
src/hotato/stackbench.py
src/hotato/verify.py
src/hotato.egg-info/PKG-INFO
src/hotato.egg-info/SOURCES.txt
src/hotato.egg-info/dependency_links.txt
src/hotato.egg-info/entry_points.txt
src/hotato.egg-info/requires.txt
src/hotato.egg-info/top_level.txt
src/hotato/_engine/__init__.py
src/hotato/_engine/__main__.py
src/hotato/_engine/audio.py
src/hotato/_engine/batch.py
src/hotato/_engine/score.py
src/hotato/_engine/vad.py
src/hotato/data/audio/01-hard-interruption.example.wav
src/hotato/data/audio/02-backchannel-mhm.example.wav
src/hotato/data/audio/03-filler-start.example.wav
src/hotato/data/audio/04-correction.example.wav
src/hotato/data/audio/05-telephony-8khz.example.wav
src/hotato/data/audio/06-double-talk.example.wav
src/hotato/data/audio/07-echo-bleed.example.wav
src/hotato/data/audio/08-rapid-turn-taking.example.wav
src/hotato/data/demo/failing/audio/fd-01-missed-interruption.example.wav
src/hotato/data/demo/failing/audio/fd-02-backchannel-yielded.example.wav
src/hotato/data/demo/failing/scenarios/fd-01-missed-interruption.json
src/hotato/data/demo/failing/scenarios/fd-02-backchannel-yielded.json
src/hotato/data/scenarios/01-hard-interruption.json
src/hotato/data/scenarios/02-backchannel-mhm.json
src/hotato/data/scenarios/03-filler-start.json
src/hotato/data/scenarios/04-correction.json
src/hotato/data/scenarios/05-telephony-8khz.json
src/hotato/data/scenarios/06-double-talk.json
src/hotato/data/scenarios/07-echo-bleed.json
src/hotato/data/scenarios/08-rapid-turn-taking.json
src/hotato/data/scenarios/manifest.json
src/hotato/schema/envelope.v1.json
src/hotato/schema/error.v1.json
src/hotato/schema/fixplan.v1.json
tests/conftest.py
tests/test_analyze.py
tests/test_backend.py
tests/test_benchmark.py
tests/test_capture.py
tests/test_capture_vendor_shapes.py
tests/test_cli.py
tests/test_compare_cli.py
tests/test_connect.py
tests/test_core.py
tests/test_corpus_classes.py
tests/test_corpus_real.py
tests/test_corpus_suites.py
tests/test_corpus_validate.py
tests/test_corpus_vapi_defaults.py
tests/test_demo_cli.py
tests/test_describe_cli.py
tests/test_diagnose.py
tests/test_echo.py
tests/test_engine_parity.py
tests/test_error_contract.py
tests/test_examples_backchannel.py
tests/test_examples_funnel.py
tests/test_examples_latency.py
tests/test_export.py
tests/test_fix_round1.py
tests/test_fix_round2.py
tests/test_fix_round3_security.py
tests/test_fix_round4.py
tests/test_fixmap.py
tests/test_fixplan.py
tests/test_fixture_cli.py
tests/test_frozen_regression.py
tests/test_hostile_inputs.py
tests/test_ingest.py
tests/test_inspect.py
tests/test_llms_docs.py
tests/test_loop.py
tests/test_mcp_parity.py
tests/test_mcp_report_path.py
tests/test_not_scorable.py
tests/test_not_scorable_rendering.py
tests/test_patch.py
tests/test_plan_cli.py
tests/test_pr_comment.py
tests/test_pull_sweep.py
tests/test_pytest_plugin.py
tests/test_readme_assets.py
tests/test_report.py
tests/test_report_analytics.py
tests/test_report_not_scorable.py
tests/test_resume.py
tests/test_scan.py
tests/test_schema.py
tests/test_signals.py
tests/test_stackbench.py
tests/test_stats.py
tests/test_team.py
tests/test_verify.py
tests/golden/suite_barge-in.json