diff --git a/.openclaw-sync/source.json b/.openclaw-sync/source.json index 390be70f6..fb7efb631 100644 --- a/.openclaw-sync/source.json +++ b/.openclaw-sync/source.json @@ -1,5 +1,5 @@ { "repository": "openclaw/openclaw", - "sha": "da8621df0d2e31369eb82f54079b6f3cd845a1f9", - "syncedAt": "2026-04-23T02:57:54.195Z" + "sha": "c866820fedefb38458d675c7c86fa4c3ed6572c3", + "syncedAt": "2026-04-23T03:30:42.125Z" } diff --git a/docs/plugins/sdk-migration.md b/docs/plugins/sdk-migration.md index ced0f07f5..fdb6f4b24 100644 --- a/docs/plugins/sdk-migration.md +++ b/docs/plugins/sdk-migration.md @@ -279,7 +279,7 @@ Current bundled provider examples: | `plugin-sdk/provider-model-shared` | Shared provider model/replay helpers | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, shared replay-policy builders, provider-endpoint helpers, and model-id normalization helpers | | `plugin-sdk/provider-catalog-shared` | Shared provider catalog helpers | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` | | `plugin-sdk/provider-onboard` | Provider onboarding patches | Onboarding config helpers | - | `plugin-sdk/provider-http` | Provider HTTP helpers | Generic provider HTTP/endpoint capability helpers | + | `plugin-sdk/provider-http` | Provider HTTP helpers | Generic provider HTTP/endpoint capability helpers, including audio transcription multipart form helpers | | `plugin-sdk/provider-web-fetch` | Provider web-fetch helpers | Web-fetch provider registration/cache helpers | | `plugin-sdk/provider-web-search-config-contract` | Provider web-search config helpers | Narrow web-search config/credential helpers for providers that do not need plugin-enable wiring | | `plugin-sdk/provider-web-search-contract` | Provider web-search contract helpers | Narrow web-search config/credential contract helpers such as `createWebSearchProviderContractFields`, `enablePluginInConfig`, `resolveProviderWebSearchPluginConfig`, and scoped credential setters/getters | diff --git a/docs/plugins/sdk-overview.md b/docs/plugins/sdk-overview.md index 5ce0e772c..479a38213 100644 --- a/docs/plugins/sdk-overview.md +++ b/docs/plugins/sdk-overview.md @@ -137,7 +137,7 @@ explicitly promotes one as public. | `plugin-sdk/provider-auth` | `createProviderApiKeyAuthMethod`, `ensureApiKeyFromOptionEnvOrPrompt`, `upsertAuthProfile`, `upsertApiKeyProfile`, `writeOAuthCredentials` | | `plugin-sdk/provider-model-shared` | `ProviderReplayFamily`, `buildProviderReplayFamilyHooks`, `normalizeModelCompat`, shared replay-policy builders, provider-endpoint helpers, and model-id normalization helpers such as `normalizeNativeXaiModelId` | | `plugin-sdk/provider-catalog-shared` | `findCatalogTemplate`, `buildSingleProviderApiKeyCatalog`, `supportsNativeStreamingUsageCompat`, `applyProviderNativeStreamingUsageCompat` | - | `plugin-sdk/provider-http` | Generic provider HTTP/endpoint capability helpers | + | `plugin-sdk/provider-http` | Generic provider HTTP/endpoint capability helpers, including audio transcription multipart form helpers | | `plugin-sdk/provider-web-fetch-contract` | Narrow web-fetch config/selection contract helpers such as `enablePluginInConfig` and `WebFetchProviderPlugin` | | `plugin-sdk/provider-web-fetch` | Web-fetch provider registration/cache helpers | | `plugin-sdk/provider-web-search-config-contract` | Narrow web-search config/credential helpers for providers that do not need plugin-enable wiring | diff --git a/docs/plugins/sdk-provider-plugins.md b/docs/plugins/sdk-provider-plugins.md index 07d8d24f5..dcb7546ec 100644 --- a/docs/plugins/sdk-provider-plugins.md +++ b/docs/plugins/sdk-provider-plugins.md @@ -716,6 +716,17 @@ API key auth, and dynamic model resolution. as `maxInputImages`, `maxInputVideos`, and `maxDurationSeconds` are not enough to advertise transform-mode support or disabled modes cleanly. + Prefer the shared WebSocket helper for streaming STT providers. It keeps + proxy capture, reconnect backoff, close flushing, ready handshakes, audio + queueing, and close-event diagnostics consistent across providers while + leaving provider code responsible for only the upstream event mapping. + + Batch STT providers that POST multipart audio should use + `buildAudioTranscriptionFormData(...)` from + `openclaw/plugin-sdk/provider-http` together with the provider HTTP request + helpers. The form helper normalizes upload filenames, including AAC uploads + that need an M4A-style filename for compatible transcription APIs. + Music-generation providers should follow the same pattern: `generate` for prompt-only generation and `edit` for reference-image-based generation. Flat aggregate fields such as `maxInputImages`, diff --git a/docs/plugins/voice-call.md b/docs/plugins/voice-call.md index 331a5f9d9..13438d5ff 100644 --- a/docs/plugins/voice-call.md +++ b/docs/plugins/voice-call.md @@ -155,7 +155,8 @@ Current runtime behavior: - `streaming.provider` is optional. If unset, Voice Call uses the first registered realtime transcription provider. -- Bundled realtime transcription providers include OpenAI (`openai`) and xAI +- Bundled realtime transcription providers include Deepgram (`deepgram`), + ElevenLabs (`elevenlabs`), Mistral (`mistral`), OpenAI (`openai`), and xAI (`xai`), registered by their provider plugins. - Provider-owned raw config lives under `streaming.providers.`. - If `streaming.provider` points at an unregistered provider, or no realtime