feat(qwen): add qwen provider and video generation

This commit is contained in:
Peter Steinberger
2026-04-04 17:43:15 +01:00
parent 759373e887
commit e3ac0f43df
104 changed files with 2477 additions and 483 deletions

View File

@@ -78,6 +78,8 @@ export const getRichMenuIdOfUser: FacadeModule["getRichMenuIdOfUser"] = ((...arg
loadFacadeModule()["getRichMenuIdOfUser"](...args)) as FacadeModule["getRichMenuIdOfUser"];
export const getRichMenuList: FacadeModule["getRichMenuList"] = ((...args) =>
loadFacadeModule()["getRichMenuList"](...args)) as FacadeModule["getRichMenuList"];
export const hasLineDirectives: FacadeModule["hasLineDirectives"] = ((...args) =>
loadFacadeModule()["hasLineDirectives"](...args)) as FacadeModule["hasLineDirectives"];
export const isSenderAllowed: FacadeModule["isSenderAllowed"] = ((...args) =>
loadFacadeModule()["isSenderAllowed"](...args)) as FacadeModule["isSenderAllowed"];
export const linkRichMenuToUser: FacadeModule["linkRichMenuToUser"] = ((...args) =>
@@ -96,6 +98,8 @@ export const normalizeDmAllowFromWithStore: FacadeModule["normalizeDmAllowFromWi
loadFacadeModule()["normalizeDmAllowFromWithStore"](
...args,
)) as FacadeModule["normalizeDmAllowFromWithStore"];
export const parseLineDirectives: FacadeModule["parseLineDirectives"] = ((...args) =>
loadFacadeModule()["parseLineDirectives"](...args)) as FacadeModule["parseLineDirectives"];
export const postbackAction: FacadeModule["postbackAction"] = ((...args) =>
loadFacadeModule()["postbackAction"](...args)) as FacadeModule["postbackAction"];
export const probeLineBot: FacadeModule["probeLineBot"] = ((...args) =>

View File

@@ -13,17 +13,17 @@ function loadFacadeModule(): FacadeModule {
artifactBasename: "runtime-api.js",
});
}
export const getBuiltinMemoryEmbeddingProviderDoctorMetadata: FacadeModule["getBuiltinMemoryEmbeddingProviderDoctorMetadata"] =
((...args) =>
loadFacadeModule()["getBuiltinMemoryEmbeddingProviderDoctorMetadata"](
...args,
)) as FacadeModule["getBuiltinMemoryEmbeddingProviderDoctorMetadata"];
export const auditShortTermPromotionArtifacts: FacadeModule["auditShortTermPromotionArtifacts"] = ((
...args
) =>
loadFacadeModule()["auditShortTermPromotionArtifacts"](
...args,
)) as FacadeModule["auditShortTermPromotionArtifacts"];
export const getBuiltinMemoryEmbeddingProviderDoctorMetadata: FacadeModule["getBuiltinMemoryEmbeddingProviderDoctorMetadata"] =
((...args) =>
loadFacadeModule()["getBuiltinMemoryEmbeddingProviderDoctorMetadata"](
...args,
)) as FacadeModule["getBuiltinMemoryEmbeddingProviderDoctorMetadata"];
export const getMemorySearchManager: FacadeModule["getMemorySearchManager"] = ((...args) =>
loadFacadeModule()["getMemorySearchManager"](...args)) as FacadeModule["getMemorySearchManager"];
export const listBuiltinAutoSelectMemoryEmbeddingProviderDoctorMetadata: FacadeModule["listBuiltinAutoSelectMemoryEmbeddingProviderDoctorMetadata"] =

View File

@@ -9,7 +9,7 @@ import {
function loadFacadeModule(): FacadeModule {
return loadBundledPluginPublicSurfaceModuleSync<FacadeModule>({
dirName: "modelstudio",
dirName: "qwen",
artifactBasename: "api.js",
});
}

View File

@@ -10,7 +10,7 @@ import {
function loadFacadeModule(): FacadeModule {
return loadBundledPluginPublicSurfaceModuleSync<FacadeModule>({
dirName: "modelstudio",
dirName: "qwen",
artifactBasename: "api.js",
});
}

View File

@@ -0,0 +1,40 @@
// Generated by scripts/generate-plugin-sdk-facades.mjs. Do not edit manually.
import type { PluginSdkFacadeTypeMap } from "../generated/plugin-sdk-facade-type-map.generated.js";
type FacadeEntry = PluginSdkFacadeTypeMap["qwen-definitions"];
type FacadeModule = FacadeEntry["module"];
import {
createLazyFacadeObjectValue,
loadBundledPluginPublicSurfaceModuleSync,
} from "./facade-runtime.js";
function loadFacadeModule(): FacadeModule {
return loadBundledPluginPublicSurfaceModuleSync<FacadeModule>({
dirName: "qwen",
artifactBasename: "api.js",
});
}
export const buildQwenDefaultModelDefinition: FacadeModule["buildQwenDefaultModelDefinition"] = ((
...args
) =>
loadFacadeModule()["buildQwenDefaultModelDefinition"](
...args,
)) as FacadeModule["buildQwenDefaultModelDefinition"];
export const buildQwenModelDefinition: FacadeModule["buildQwenModelDefinition"] = ((...args) =>
loadFacadeModule()["buildQwenModelDefinition"](
...args,
)) as FacadeModule["buildQwenModelDefinition"];
export const QWEN_CN_BASE_URL: FacadeModule["QWEN_CN_BASE_URL"] =
loadFacadeModule()["QWEN_CN_BASE_URL"];
export const QWEN_DEFAULT_COST: FacadeModule["QWEN_DEFAULT_COST"] = createLazyFacadeObjectValue(
() => loadFacadeModule()["QWEN_DEFAULT_COST"] as object,
) as FacadeModule["QWEN_DEFAULT_COST"];
export const QWEN_DEFAULT_MODEL_ID: FacadeModule["QWEN_DEFAULT_MODEL_ID"] =
loadFacadeModule()["QWEN_DEFAULT_MODEL_ID"];
export const QWEN_DEFAULT_MODEL_REF: FacadeModule["QWEN_DEFAULT_MODEL_REF"] =
loadFacadeModule()["QWEN_DEFAULT_MODEL_REF"];
export const QWEN_GLOBAL_BASE_URL: FacadeModule["QWEN_GLOBAL_BASE_URL"] =
loadFacadeModule()["QWEN_GLOBAL_BASE_URL"];
export const QWEN_STANDARD_CN_BASE_URL: FacadeModule["QWEN_STANDARD_CN_BASE_URL"] =
loadFacadeModule()["QWEN_STANDARD_CN_BASE_URL"];
export const QWEN_STANDARD_GLOBAL_BASE_URL: FacadeModule["QWEN_STANDARD_GLOBAL_BASE_URL"] =
loadFacadeModule()["QWEN_STANDARD_GLOBAL_BASE_URL"];

54
src/plugin-sdk/qwen.ts Normal file
View File

@@ -0,0 +1,54 @@
// Generated by scripts/generate-plugin-sdk-facades.mjs. Do not edit manually.
import type { PluginSdkFacadeTypeMap } from "../generated/plugin-sdk-facade-type-map.generated.js";
type FacadeEntry = PluginSdkFacadeTypeMap["qwen"];
type FacadeModule = FacadeEntry["module"];
import {
createLazyFacadeArrayValue,
createLazyFacadeObjectValue,
loadBundledPluginPublicSurfaceModuleSync,
} from "./facade-runtime.js";
function loadFacadeModule(): FacadeModule {
return loadBundledPluginPublicSurfaceModuleSync<FacadeModule>({
dirName: "qwen",
artifactBasename: "api.js",
});
}
export const applyQwenNativeStreamingUsageCompat: FacadeModule["applyQwenNativeStreamingUsageCompat"] =
((...args) =>
loadFacadeModule()["applyQwenNativeStreamingUsageCompat"](
...args,
)) as FacadeModule["applyQwenNativeStreamingUsageCompat"];
export const buildQwenDefaultModelDefinition: FacadeModule["buildQwenDefaultModelDefinition"] = ((
...args
) =>
loadFacadeModule()["buildQwenDefaultModelDefinition"](
...args,
)) as FacadeModule["buildQwenDefaultModelDefinition"];
export const buildQwenModelDefinition: FacadeModule["buildQwenModelDefinition"] = ((...args) =>
loadFacadeModule()["buildQwenModelDefinition"](
...args,
)) as FacadeModule["buildQwenModelDefinition"];
export const QWEN_BASE_URL: FacadeModule["QWEN_BASE_URL"] = loadFacadeModule()["QWEN_BASE_URL"];
export const QWEN_CN_BASE_URL: FacadeModule["QWEN_CN_BASE_URL"] =
loadFacadeModule()["QWEN_CN_BASE_URL"];
export const QWEN_DEFAULT_COST: FacadeModule["QWEN_DEFAULT_COST"] = createLazyFacadeObjectValue(
() => loadFacadeModule()["QWEN_DEFAULT_COST"] as object,
) as FacadeModule["QWEN_DEFAULT_COST"];
export const QWEN_DEFAULT_MODEL_ID: FacadeModule["QWEN_DEFAULT_MODEL_ID"] =
loadFacadeModule()["QWEN_DEFAULT_MODEL_ID"];
export const QWEN_DEFAULT_MODEL_REF: FacadeModule["QWEN_DEFAULT_MODEL_REF"] =
loadFacadeModule()["QWEN_DEFAULT_MODEL_REF"];
export const QWEN_GLOBAL_BASE_URL: FacadeModule["QWEN_GLOBAL_BASE_URL"] =
loadFacadeModule()["QWEN_GLOBAL_BASE_URL"];
export const QWEN_STANDARD_CN_BASE_URL: FacadeModule["QWEN_STANDARD_CN_BASE_URL"] =
loadFacadeModule()["QWEN_STANDARD_CN_BASE_URL"];
export const QWEN_STANDARD_GLOBAL_BASE_URL: FacadeModule["QWEN_STANDARD_GLOBAL_BASE_URL"] =
loadFacadeModule()["QWEN_STANDARD_GLOBAL_BASE_URL"];
export const QWEN_MODEL_CATALOG: FacadeModule["QWEN_MODEL_CATALOG"] = createLazyFacadeArrayValue(
() => loadFacadeModule()["QWEN_MODEL_CATALOG"] as unknown as readonly unknown[],
) as FacadeModule["QWEN_MODEL_CATALOG"];
export const isNativeQwenBaseUrl: FacadeModule["isNativeQwenBaseUrl"] = ((...args) =>
loadFacadeModule()["isNativeQwenBaseUrl"](...args)) as FacadeModule["isNativeQwenBaseUrl"];
export const buildQwenProvider: FacadeModule["buildQwenProvider"] = ((...args) =>
loadFacadeModule()["buildQwenProvider"](...args)) as FacadeModule["buildQwenProvider"];

View File

@@ -0,0 +1,27 @@
// Shared video-generation implementation helpers for bundled and third-party plugins.
export type { AuthProfileStore } from "../agents/auth-profiles.js";
export type { FallbackAttempt } from "../agents/model-fallback.types.js";
export type { VideoGenerationProviderPlugin } from "../plugins/types.js";
export type {
GeneratedVideoAsset,
VideoGenerationProvider,
VideoGenerationRequest,
VideoGenerationResolution,
VideoGenerationResult,
VideoGenerationSourceAsset,
} from "../video-generation/types.js";
export type { OpenClawConfig } from "../config/config.js";
export { describeFailoverError, isFailoverError } from "../agents/failover-error.js";
export {
resolveAgentModelFallbackValues,
resolveAgentModelPrimaryValue,
} from "../config/model-input.js";
export {
getVideoGenerationProvider,
listVideoGenerationProviders,
} from "../video-generation/provider-registry.js";
export { parseVideoGenerationModelRef } from "../video-generation/model-ref.js";
export { createSubsystemLogger } from "../logging/subsystem.js";
export { getProviderEnvVars } from "../secrets/provider-env-vars.js";

View File

@@ -0,0 +1,21 @@
// Generated by scripts/generate-plugin-sdk-facades.mjs. Do not edit manually.
import type { PluginSdkFacadeTypeMap } from "../generated/plugin-sdk-facade-type-map.generated.js";
type FacadeEntry = PluginSdkFacadeTypeMap["video-generation-runtime"];
type FacadeModule = FacadeEntry["module"];
import { loadActivatedBundledPluginPublicSurfaceModuleSync } from "./facade-runtime.js";
function loadFacadeModule(): FacadeModule {
return loadActivatedBundledPluginPublicSurfaceModuleSync<FacadeModule>({
dirName: "video-generation-core",
artifactBasename: "runtime-api.js",
});
}
export const generateVideo: FacadeModule["generateVideo"] = ((...args) =>
loadFacadeModule()["generateVideo"](...args)) as FacadeModule["generateVideo"];
export const listRuntimeVideoGenerationProviders: FacadeModule["listRuntimeVideoGenerationProviders"] =
((...args) =>
loadFacadeModule()["listRuntimeVideoGenerationProviders"](
...args,
)) as FacadeModule["listRuntimeVideoGenerationProviders"];
export type GenerateVideoParams = FacadeEntry["types"]["GenerateVideoParams"];
export type GenerateVideoRuntimeResult = FacadeEntry["types"]["GenerateVideoRuntimeResult"];

View File

@@ -0,0 +1,10 @@
// Public video-generation helpers and types for provider plugins.
export type {
GeneratedVideoAsset,
VideoGenerationProvider,
VideoGenerationRequest,
VideoGenerationResolution,
VideoGenerationResult,
VideoGenerationSourceAsset,
} from "../video-generation/types.js";