From c3ee8c611de6631fe005d3eb9dbd72af53d727bd Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Sat, 4 Apr 2026 19:45:59 +0100 Subject: [PATCH] docs: refresh video generation sdk refs --- docs/concepts/model-providers.md | 4 +++- docs/plugins/architecture.md | 16 ++++++++++------ docs/plugins/sdk-migration.md | 3 +++ docs/plugins/sdk-overview.md | 3 +++ 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/docs/concepts/model-providers.md b/docs/concepts/model-providers.md index dbbcda3751a..61709c81ec5 100644 --- a/docs/concepts/model-providers.md +++ b/docs/concepts/model-providers.md @@ -136,8 +136,10 @@ Current bundled examples: - `opencode` and `opencode-go`: plugin-owned capability metadata plus proxy-Gemini thought-signature sanitation - `byteplus`, `cloudflare-ai-gateway`, `huggingface`, `kimi`, - `qwen`, `nvidia`, `qianfan`, `stepfun`, `synthetic`, `together`, `venice`, + `nvidia`, `qianfan`, `stepfun`, `synthetic`, `together`, `venice`, `vercel-ai-gateway`, and `volcengine`: plugin-owned catalogs only +- `qwen`: plugin-owned catalogs for text models plus shared media-understanding + and video-generation provider registrations for its multimodal surfaces - `minimax`: plugin-owned catalogs, hybrid Anthropic/OpenAI replay-policy selection, and usage auth/snapshot logic - `xiaomi`: plugin-owned catalogs plus usage auth/snapshot logic diff --git a/docs/plugins/architecture.md b/docs/plugins/architecture.md index cc68788aaf6..b96e0c85a43 100644 --- a/docs/plugins/architecture.md +++ b/docs/plugins/architecture.md @@ -371,9 +371,9 @@ capability. The same ownership model applies there: That avoids baking one provider's video assumptions into core. The plugin owns the vendor surface; core owns the capability contract and fallback behavior. -If OpenClaw adds a new domain later, such as video generation, use the same -sequence again: define the core capability first, then let vendor plugins -register implementations against it. +Video generation already uses that same sequence: core owns the typed +capability contract and runtime helper, and vendor plugins register +`api.registerVideoGenerationProvider(...)` implementations against it. Need a concrete rollout checklist? See [Capability Cookbook](/tools/capability-cookbook). @@ -817,9 +817,11 @@ api.registerProvider({ - Mistral, OpenCode Zen, and OpenCode Go use `capabilities` only to keep transcript/tooling quirks out of core. - Catalog-only bundled providers such as `byteplus`, `cloudflare-ai-gateway`, - `huggingface`, `kimi-coding`, `qwen`, `nvidia`, `qianfan`, + `huggingface`, `kimi-coding`, `nvidia`, `qianfan`, `synthetic`, `together`, `venice`, `vercel-ai-gateway`, and `volcengine` use `catalog` only. +- Qwen uses `catalog` for its text provider plus shared media-understanding and + video-generation registrations for its multimodal surfaces. - MiniMax and Xiaomi use `catalog` plus usage hooks because their `/usage` behavior is plugin-owned even though inference still runs through the shared transports. @@ -900,8 +902,10 @@ Notes: - Keep vendor behavior in the provider plugin. - Additive expansion should stay typed: new optional methods, new optional result fields, new optional capabilities. -- If OpenClaw adds a new capability such as video generation later, define the - core capability contract first, then let vendor plugins register against it. +- Video generation already follows the same pattern: + - core owns the capability contract and runtime helper + - vendor plugins register `api.registerVideoGenerationProvider(...)` + - feature/channel plugins consume `api.runtime.videoGeneration.*` For media-understanding runtime helpers, plugins can call: diff --git a/docs/plugins/sdk-migration.md b/docs/plugins/sdk-migration.md index b372727d77e..3002ac5257b 100644 --- a/docs/plugins/sdk-migration.md +++ b/docs/plugins/sdk-migration.md @@ -262,6 +262,9 @@ Current bundled provider examples: | `plugin-sdk/realtime-transcription` | Realtime transcription helpers | Provider types and registry helpers | | `plugin-sdk/realtime-voice` | Realtime voice helpers | Provider types and registry helpers | | `plugin-sdk/image-generation-core` | Shared image-generation core | Image-generation types, failover, auth, and registry helpers | + | `plugin-sdk/video-generation` | Video-generation provider types | Video-generation provider/request/result types for provider plugins | + | `plugin-sdk/video-generation-core` | Shared video-generation core | Video-generation types, failover helpers, provider lookup, and model-ref parsing | + | `plugin-sdk/video-generation-runtime` | Video-generation runtime facade | Shared runtime `generateVideo` / `listRuntimeVideoGenerationProviders` facade | | `plugin-sdk/interactive-runtime` | Interactive reply helpers | Interactive reply payload normalization/reduction | | `plugin-sdk/channel-config-primitives` | Channel config primitives | Narrow channel config-schema primitives | | `plugin-sdk/channel-config-writes` | Channel config-write helpers | Channel config-write authorization helpers | diff --git a/docs/plugins/sdk-overview.md b/docs/plugins/sdk-overview.md index 5661767d2a1..10433ccca44 100644 --- a/docs/plugins/sdk-overview.md +++ b/docs/plugins/sdk-overview.md @@ -232,6 +232,9 @@ explicitly promotes one as public. | `plugin-sdk/realtime-voice` | Realtime voice provider types and registry helpers | | `plugin-sdk/image-generation` | Image generation provider types | | `plugin-sdk/image-generation-core` | Shared image-generation types, failover, auth, and registry helpers | + | `plugin-sdk/video-generation` | Video generation provider types | + | `plugin-sdk/video-generation-core` | Shared video-generation types, failover helpers, provider lookup, and model-ref parsing | + | `plugin-sdk/video-generation-runtime` | Shared runtime `generateVideo` / `listRuntimeVideoGenerationProviders` facade | | `plugin-sdk/media-understanding` | Media understanding provider types | | `plugin-sdk/speech` | Speech provider types | | `plugin-sdk/webhook-targets` | Webhook target registry and route-install helpers |