CHANGELOG.md
CONTRIBUTING.md
LICENSE
MANIFEST.in
METHODOLOGY.md
README.md
SECURITY.md
llms.txt
pyproject.toml
sync_engine.py
.github/PULL_REQUEST_TEMPLATE.md
.github/banner.png
.github/ISSUE_TEMPLATE/bug_report.md
.github/ISSUE_TEMPLATE/config.yml
.github/ISSUE_TEMPLATE/corpus_submission.yml
.github/ISSUE_TEMPLATE/feature_request.md
.github/workflows/hotato.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/examples/sample-contribution.example.wav
corpus/examples/sample-contribution.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
docs/ADAPTER-STATUS.md
docs/API.md
docs/BENCHMARK-STACKS.md
docs/BENCHMARK.md
docs/CI.md
docs/CORPUS-GOVERNANCE.md
docs/PYTEST.md
docs/RELEASE-CHECKLIST.md
docs/REPORTS.md
docs/SAA-BEHAVIOR-CARD.md
docs/SAA-FIX-POINTER.md
docs/SUBMITTING.md
docs/SUITES.md
docs/WHY.md
docs/saa_behavior_card.py
docs/assets/hotato-demo-report.html
docs/assets/hotato-demo-report.png
docs/assets/mascot.svg
examples/README.md
examples/render_examples.py
examples/audio/bc-01-repeated-backchannels.caller.wav
examples/audio/bc-01-repeated-backchannels.example.wav
examples/audio/bc-02-midutterance-backchannel.caller.wav
examples/audio/bc-02-midutterance-backchannel.example.wav
examples/audio/bc-03-near-miss-floor-take.caller.wav
examples/audio/bc-03-near-miss-floor-take.example.wav
examples/audio/lat-01-prompt-response-prompt.caller.wav
examples/audio/lat-01-prompt-response-prompt.example.wav
examples/audio/lat-02-prompt-response-sluggish.caller.wav
examples/audio/lat-02-prompt-response-sluggish.example.wav
examples/audio/lat-03-prompt-response-overeager.caller.wav
examples/audio/lat-03-prompt-response-overeager.example.wav
examples/demo/README.md
examples/demo/run-demo.sh
examples/funnel-demo/audio/fd-01-missed-interruption.caller.wav
examples/funnel-demo/audio/fd-01-missed-interruption.example.wav
examples/funnel-demo/audio/fd-02-backchannel-yielded.caller.wav
examples/funnel-demo/audio/fd-02-backchannel-yielded.example.wav
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/pr_comment.py
scripts/render_readme_assets.py
src/hotato/__init__.py
src/hotato/__main__.py
src/hotato/_stats.py
src/hotato/aggregate.py
src/hotato/benchmark.py
src/hotato/capture.py
src/hotato/cli.py
src/hotato/core.py
src/hotato/export.py
src/hotato/fixmap.py
src/hotato/mcp_server.py
src/hotato/neural.py
src/hotato/pytest_plugin.py
src/hotato/report.py
src/hotato/stackbench.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
tests/conftest.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_core.py
tests/test_corpus_suites.py
tests/test_corpus_validate.py
tests/test_demo_cli.py
tests/test_engine_parity.py
tests/test_examples_backchannel.py
tests/test_examples_funnel.py
tests/test_examples_latency.py
tests/test_export.py
tests/test_fixmap.py
tests/test_frozen_regression.py
tests/test_hostile_inputs.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_pr_comment.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_saa_card.py
tests/test_schema.py
tests/test_signals.py
tests/test_stackbench.py
tests/test_team.py
tests/golden/suite_barge-in.json