Adds Xiaomi MiMo voicedesign TTS support by registering the v2.5 voicedesign model and omitting audio.voice for that model's prompt-driven voice design flow.
Also accepts generic TTS aliases modelId, speakerVoice, and speakerVoiceId for Xiaomi provider config and request overrides.
Fixes exec timeout classification so a process that exits after a missed timeout callback is still reported as timed out, using monotonic deadlines to avoid wall-clock skew.
Verification:
- node scripts/run-vitest.mjs extensions/xiaomi/speech-provider.test.ts
- node scripts/run-vitest.mjs src/process/supervisor/supervisor.test.ts
- node scripts/run-vitest.mjs src/agents/bash-tools.exec-foreground-failures.test.ts
- git diff --check
- autoreview --mode local
- live Xiaomi MiMo voicedesign call returned wav RIFF/WAVE output, 169004 bytes
- GitHub CI success on fb3018ef31: CI 26708919072, CodeQL Critical Quality 26708919082, CodeQL 26708919091, OpenGrep PR Diff 26708919089, Workflow Sanity 26708919083, Dependency Guard 26708918574, Real behavior proof 26708921767
Thanks @GimingRao.
Co-authored-by: Raoyu <2425198313@qq.com>
Co-authored-by: giming <53329020+GimingRao@users.noreply.github.com>
Adds first-class Xiaomi Token Plan provider support with regional onboarding/configuration, token-plan key prefix validation, runtime pricing/catalog metadata, and docs/test coverage.
Keeps Token Plan model catalog discovery runtime-owned so region-specific base URLs are required and the provider cannot silently fall back to the static SGP manifest catalog.
Fixes#86169.
Verification:
- node scripts/run-vitest.mjs src/plugins/provider-discovery.runtime.test.ts extensions/xiaomi/index.test.ts src/plugins/manifest-model-catalog.test.ts src/model-catalog/manifest-planner.test.ts
- git diff --check
- autoreview --mode local: clean, no accepted/actionable findings
- CI run 26678998539: all relevant checks passed; check-prod-types failed on unrelated browser unused-function issue already present on origin/main
Co-authored-by: NianJiuZst <3235467914@qq.com>
Co-authored-by: Peter Steinberger <steipete@gmail.com>
SenseAudio (docs/providers/senseaudio.md): removed the duplicate
'# SenseAudio' H1 (Mintlify renders title from frontmatter; an in-body
H1 produces a brittle anchor). Reordered the properties table to lead
with provider id, plugin, and the speechProviders/mediaUnderstanding
contract before the website/docs links, sourced from
extensions/senseaudio/openclaw.plugin.json. Lowercased the H2 to
'Getting started' for consistency.
Xiaomi (docs/providers/xiaomi.md): expanded the 4-row properties table
to include plugin, onboarding flag, direct CLI flag, and contracts
(chat completions plus speechProviders). The TTS default is surfaced
inline so readers see the dual-contract setup in one glance, sourced
from extensions/xiaomi/openclaw.plugin.json.
Inworld (docs/providers/inworld.md): renamed the table header from
'Detail' to 'Property' and added bundled-plugin status and the
speechProviders contract. Surfaced the audio output formats (MP3,
OGG_OPUS, PCM 22050 Hz) as a Property row so readers do not have to
read the Audio outputs accordion to confirm telephony support.
Verified against extensions/inworld/openclaw.plugin.json.