zeo_core.voice (zeocore)

Licence: the files listed below are derived from RasaHQ/rasa-community-resources and are
licensed under the Apache License, Version 2.0. The text is src/zeo_core/voice/LICENSE, byte-identical to the
upstream repository-root LICENSE (git blob 261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64). The rest of the zeocore repository is MIT
(see the repository LICENSE). The derived files are NOT relicensed.

Source: RasaHQ/rasa-community-resources, commit 9f85e2be9398f23dc06b30f4b8f1f53964627251,
directory patterns/voice-vendor-router/ (81 files), plus the repository-root LICENSE (blob 261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64) and
docs/VOICE_ROUTER.md (blob 800c807c5fd75e8b15615ed8d72e605809500e6e; recorded as provenance, NOT copied).

Copyright: the upstream repository has no NOTICE file and none of the source files carries a copyright or
licence header. No copyright line is stated or invented here.

Modifications (Apache-2.0 section 4(b)): every file listed as modified was changed from its source. Each
carries a header comment naming this commit and its source path. The changes are (a) the mechanical
module-name rewrite (voicerouter.X to zeo_core.voice.X, import statements only), ruff import order and
line wrapping, and (b) the numbered changes below, each with its own test in tests/test_voice/.

Names: "Rasa" and "Mantle" appear only to identify provenance and compatibility. No endorsement by, or
affiliation with, the upstream owner is claimed.

Third-party: no third-party or vendored code was found in the copied files. audioop-lts (PSF-2.0) is a
declared dependency for Python 3.13 and later; it is not distributed here.

Numbered changes to the source code
D1 engine.py: the find_spec("rasa") type switch is removed; the standalone types are always used.
D2 engine.py: AudioBytes = RasaAudioBytes alias added beside RasaAudioBytes.
D3 base.py, metrics.py, routed_asr.py, routed_tts.py: structlog replaced by the stdlib shim zeo_core.voice._log.
D4 engine.py, base.py, routed_asr.py, routed_tts.py, profile.py: the default name/dotted-path engine factories
   are removed; an EngineFactory is a required argument (build_providers passes the kind to it).
D5 engine.py, base.py: the required_env_vars check and env_present (environment lookups) are removed.
D6 audio.py is unchanged in code; audioop is the standard library on Python 3.12 and audioop-lts on 3.13+.
D7 contract.py: the scanner takes an explicit source root; the rasa import used to find one is removed.
D8 routed_tts.py, routed_asr.py: a provider that fails after it connected (start_response, a write, a finish, a read, set_language)
   is closed, bounded by 5 s, before the router stops tracking it; upstream dropped it from the cleanup ledger unclosed.
N1-N3 routed_asr.py, routed_tts.py: three inline noqa comments (S110 twice, S311 once), each with a one-line
   reason, on lines whose code is unchanged (each is reviewable in the diff).
Other: __init__.py has a new docstring; _provider_registry.py keeps only the factory contract (the vendor
alias table leaves Core).

Per-file table
upstream path | upstream blob | zeocore path | zeocore sha256 | change
patterns/voice-vendor-router/voicerouter/__init__.py | caf43064a7a00b29095145070146efaff3495d3e | src/zeo_core/voice/__init__.py | 57aa8442c3adc8ecb4ce766d2562aaea6738f80731c2c927aab152f36f14fb8e | modified
patterns/voice-vendor-router/voicerouter/audio.py | 1df67e066c4d9e3fb49fd5ada540dd43e6d13b47 | src/zeo_core/voice/audio.py | 5c8e5916cfcdd43635c613d7acf45931f98e3be360ab4d2df880eaaf17e3557a | modified
patterns/voice-vendor-router/voicerouter/base.py | 31dc91445166e3da0c9254ec316cd6ff31804531 | src/zeo_core/voice/base.py | 9eb302ffc2b511cecd3fdbfb4b0c96c4a603808080ae7c6d686fcfa8d0c8099a | modified
patterns/voice-vendor-router/voicerouter/bench.py | f433bc45ce4108d78ab1e69f1e083c9654f06f02 | src/zeo_core/voice/bench.py | 10236dd962194b7d11fbd21887a3fc2a5e0d71a77156edfc572c4942bbade13f | modified
patterns/voice-vendor-router/voicerouter/contract.py | 66dce0307c9e1d52701e9bd7f88f41a051cd2f49 | src/zeo_core/voice/contract.py | 1edf9008f586f405e27c81d04ff38b4e652944ae19be98a640ad48ba512e9215 | modified
patterns/voice-vendor-router/voicerouter/engine.py | 1a34b6aa3f4d4fae9a1a4e9f5756d6db6ab6767c | src/zeo_core/voice/engine.py | da592f11d180634a7d5879520aa66eec79416d0fa31053827250fe932b68c8b6 | modified
patterns/voice-vendor-router/voicerouter/failures.py | c36ca23302e95af9d74ed64f5ca38c4e192bacfe | src/zeo_core/voice/failures.py | 273ea5c926e682f9d56cbf6950cdf172e2709c020b683e1a3271064b62ceb09f | modified
patterns/voice-vendor-router/voicerouter/health.py | 138e92142156dec69481176ed48bc98b323d7b6d | src/zeo_core/voice/health.py | fc7cefef4f3e1a83eda1bdb25026c30b52ecc4819315e638579f6853b60611cd | modified
patterns/voice-vendor-router/voicerouter/metrics.py | 53126f7dd598e9b80dd3a61a4260c6d5b34a6e7d | src/zeo_core/voice/metrics.py | 2886e013742b53e9aa82f320622259a32075d6a086c179fc7f334aae8d4a829f | modified
patterns/voice-vendor-router/voicerouter/profile.py | 26cb78c9aaef7e3b1e30fc02b263ce223b08d0f7 | src/zeo_core/voice/profile.py | dfce5b23ef6e45b7f3d2aa7d0ab4f77c014b2a971a82b40baf7829d27d66f9b7 | modified
patterns/voice-vendor-router/voicerouter/routed_asr.py | c30711c1d4b7abab8695f9c8cabe96f4ed4dd36b | src/zeo_core/voice/routed_asr.py | 7027c77e353d26576166bc16d449ba66831b1eea967f760c2e877d7e8bc63e33 | modified
patterns/voice-vendor-router/voicerouter/routed_tts.py | eb290562ff5f7eae49954f6f432fc87f71923def | src/zeo_core/voice/routed_tts.py | 688a5bc647fe76682aa9a807a6cd1ef15a41fb1170a75348f92a96d81b71372a | modified
patterns/voice-vendor-router/voicerouter/utterance.py | a2077959d6005d90ccb8c2110eb9324b2acab7f5 | src/zeo_core/voice/utterance.py | f4b600530693664d63f655daebcf57d041f56a2cc3b67ee5e131ac18f8f25227 | modified
patterns/voice-vendor-router/voicerouter/_provider_registry.py | 69fc671d52d418117793f87c19a4b275c6f8fc66 | src/zeo_core/voice/_provider_registry.py | 3cd4935cc277686612ff2dd82d65afc1b3bf9d7edde2c892a0b5a2ffcb39523b | rewritten (neutral part only); vendor alias table not copied
(none) | - | src/zeo_core/voice/_log.py | 9cdad1f41bbafa3fb27cd5dd4723475dd8f8542eaecc201bae470efe2b2287f6 | new, Core-written (D3 shim)
LICENSE | 261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64 | src/zeo_core/voice/LICENSE | c71d239df91726fc519c6eb72d318ec65820627232b2f796219e87dcf35d0ab4 | byte-identical
