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/publish-pypi-oidc.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/APPLY.md
docs/BAD-CALL-TO-CI.md
docs/BENCHMARK-STACKS.md
docs/BENCHMARK.md
docs/CARDS.md
docs/CI.md
docs/COMPARE.md
docs/CONNECT.md
docs/CONTRACTS.md
docs/CORPUS-GOVERNANCE.md
docs/DIARIZE.md
docs/EGRESS.md
docs/EVIDENCE-PACK.md
docs/EXPLAIN.md
docs/FIX-LOOP.md
docs/FIX-PLANS.md
docs/FIX-TRIAL.md
docs/GALLERY.md
docs/GUARDIAN-FLEET.md
docs/INGEST.md
docs/MCP.md
docs/OTEL.md
docs/PYTEST.md
docs/RECAPTURE.md
docs/RELEASE-CHECKLIST.md
docs/REPORTS.md
docs/SET-AND-FORGET.md
docs/START.md
docs/STARTER.md
docs/SUBMITTING.md
docs/SUITES.md
docs/THREAT-MODEL.md
docs/TRACE.md
docs/TRUST-GALLERY.md
docs/TRUST-MATRIX.md
docs/TRUST.md
docs/VALIDATION.md
docs/WHY.md
docs/case-studies/README.md
docs/case-studies/vapi-01-hard-interruption.md
docs/evidence/README.md
docs/evidence/case-study-TEMPLATE.md
docs/evidence/validation-plan.md
docs/releases/v0.4.0.md
docs/releases/v0.4.1.md
docs/releases/v0.5.0.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
examples/set-and-forget/README.md
examples/set-and-forget/sweep-nightly.sh
examples/verify-policy/README.md
examples/verify-policy/hotato.verify.yaml
scripts/build_llms_full.py
scripts/copy_lint.py
scripts/gen_sbom.py
scripts/pr_comment.py
scripts/record_demo_gif.sh
scripts/render_banner.py
scripts/render_card_assets.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/apply.py
src/hotato/attest.py
src/hotato/benchmark.py
src/hotato/capture.py
src/hotato/card.py
src/hotato/cli.py
src/hotato/compare.py
src/hotato/connections.py
src/hotato/contract.py
src/hotato/core.py
src/hotato/diagnose.py
src/hotato/diarize.py
src/hotato/echo.py
src/hotato/errors.py
src/hotato/evidence.py
src/hotato/explain.py
src/hotato/export.py
src/hotato/fix_trial.py
src/hotato/fixmap.py
src/hotato/fixplan.py
src/hotato/fixture.py
src/hotato/ingest.py
src/hotato/initcmd.py
src/hotato/inspectcfg.py
src/hotato/issuecmd.py
src/hotato/loop.py
src/hotato/manifest.py
src/hotato/mcp_server.py
src/hotato/neural.py
src/hotato/patch.py
src/hotato/prcmd.py
src/hotato/pytest_plugin.py
src/hotato/receipt.py
src/hotato/recompute.py
src/hotato/report.py
src/hotato/resume.py
src/hotato/scan.py
src/hotato/stackbench.py
src/hotato/start.py
src/hotato/synth.py
src/hotato/trace.py
src/hotato/trust.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/fleet/__init__.py
src/hotato/fleet/_mock_capture.py
src/hotato/fleet/adapters.py
src/hotato/fleet/api.py
src/hotato/fleet/canary.py
src/hotato/fleet/jobs.py
src/hotato/fleet/privacy.py
src/hotato/fleet/registry.py
src/hotato/fleet/store.py
src/hotato/schema/attestation.v1.json
src/hotato/schema/capture_receipt.v1.json
src/hotato/schema/contract.v1.json
src/hotato/schema/envelope.v1.json
src/hotato/schema/error.v1.json
src/hotato/schema/evidence_vector.v1.json
src/hotato/schema/explain.v1.json
src/hotato/schema/fixplan.v1.json
src/hotato/schema/trial_manifest.v1.json
src/hotato/schema/voice_trace.v1.json
src/hotato/templates/webhook/Dockerfile.tmpl
src/hotato/templates/webhook/README.md.tmpl
src/hotato/templates/webhook/app.py.tmpl
src/hotato/templates/webhook/deploy.yml.tmpl
src/hotato/templates/webhook/env.example.tmpl
src/hotato/templates/webhook/hotato.yaml.tmpl
src/hotato/templates/webhook/requirements.txt.tmpl
src/hotato/templates/webhook/test_webhook_contract.py.tmpl
src/hotato/templates/webhook/fragments/events_retell.py
src/hotato/templates/webhook/fragments/events_twilio.py
src/hotato/templates/webhook/fragments/events_vapi.py
src/hotato/templates/webhook/fragments/verify_retell.py
src/hotato/templates/webhook/fragments/verify_twilio.py
src/hotato/templates/webhook/fragments/verify_vapi.py
tests/_trial_audio.py
tests/conftest.py
tests/test_adapter_http_smoke.py
tests/test_adapters.py
tests/test_analyze.py
tests/test_analyze_promote_buttons.py
tests/test_apply_clone.py
tests/test_backend.py
tests/test_benchmark.py
tests/test_canary.py
tests/test_capture.py
tests/test_capture_vendor_shapes.py
tests/test_card_cli.py
tests/test_cli.py
tests/test_compare_cli.py
tests/test_connect.py
tests/test_contract_attestation.py
tests/test_contract_cli.py
tests/test_copy_lint.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_decision_margin.py
tests/test_demo_cli.py
tests/test_describe_cli.py
tests/test_diagnose.py
tests/test_diarize.py
tests/test_echo.py
tests/test_engine_parity.py
tests/test_error_contract.py
tests/test_evidence_rendering.py
tests/test_examples_backchannel.py
tests/test_examples_funnel.py
tests/test_examples_latency.py
tests/test_experiment_loop.py
tests/test_explain.py
tests/test_explain_cli.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_fix_trial.py
tests/test_fix_trial_cli.py
tests/test_fixmap.py
tests/test_fixplan.py
tests/test_fixture_cli.py
tests/test_fixture_promote.py
tests/test_fleet.py
tests/test_fleet_chaos.py
tests/test_fleet_cli.py
tests/test_fleet_security.py
tests/test_frozen_regression.py
tests/test_hostile_inputs.py
tests/test_ingest.py
tests/test_init_starter.py
tests/test_init_webhook.py
tests/test_inspect.py
tests/test_issue_create.py
tests/test_llms_docs.py
tests/test_loop.py
tests/test_mcp_fleet_tools.py
tests/test_mcp_parity.py
tests/test_mcp_report_path.py
tests/test_migration_compat.py
tests/test_not_scorable.py
tests/test_not_scorable_rendering.py
tests/test_numeric_boundaries.py
tests/test_patch.py
tests/test_plan_cli.py
tests/test_pr_comment.py
tests/test_pr_create.py
tests/test_privacy.py
tests/test_proof_gate_attacks.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_start_cli.py
tests/test_start_stereo.py
tests/test_stats.py
tests/test_sweep_demo.py
tests/test_synth.py
tests/test_team.py
tests/test_trace_cli.py
tests/test_trust.py
tests/test_trust_headline.py
tests/test_verify.py
tests/test_verify_html.py
tests/test_version_lockstep.py
tests/data/otel/demo-trace.otel.jsonl
tests/golden/suite_barge-in.json