@miragari/providers 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/LICENSE +1 -0
  2. package/README.md +567 -0
  3. package/dist/builtin.d.ts +9 -0
  4. package/dist/builtin.d.ts.map +1 -0
  5. package/dist/builtin.js +13 -0
  6. package/dist/builtin.js.map +1 -0
  7. package/dist/google/definition.d.ts +3 -0
  8. package/dist/google/definition.d.ts.map +1 -0
  9. package/dist/google/definition.js +69 -0
  10. package/dist/google/definition.js.map +1 -0
  11. package/dist/google/index.d.ts +2 -0
  12. package/dist/google/index.d.ts.map +1 -0
  13. package/dist/google/index.js +2 -0
  14. package/dist/google/index.js.map +1 -0
  15. package/dist/google/provider.d.ts +2 -0
  16. package/dist/google/provider.d.ts.map +1 -0
  17. package/dist/google/provider.js +133 -0
  18. package/dist/google/provider.js.map +1 -0
  19. package/dist/happyhorse/definition.d.ts +3 -0
  20. package/dist/happyhorse/definition.d.ts.map +1 -0
  21. package/dist/happyhorse/definition.js +57 -0
  22. package/dist/happyhorse/definition.js.map +1 -0
  23. package/dist/happyhorse/index.d.ts +2 -0
  24. package/dist/happyhorse/index.d.ts.map +1 -0
  25. package/dist/happyhorse/index.js +2 -0
  26. package/dist/happyhorse/index.js.map +1 -0
  27. package/dist/happyhorse/provider.d.ts +2 -0
  28. package/dist/happyhorse/provider.d.ts.map +1 -0
  29. package/dist/happyhorse/provider.js +253 -0
  30. package/dist/happyhorse/provider.js.map +1 -0
  31. package/dist/http.d.ts +66 -0
  32. package/dist/http.d.ts.map +1 -0
  33. package/dist/http.js +236 -0
  34. package/dist/http.js.map +1 -0
  35. package/dist/index.d.ts +14 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +10 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/media-router.d.ts +35 -0
  40. package/dist/media-router.d.ts.map +1 -0
  41. package/dist/media-router.js +202 -0
  42. package/dist/media-router.js.map +1 -0
  43. package/dist/openai/definition.d.ts +4 -0
  44. package/dist/openai/definition.d.ts.map +1 -0
  45. package/dist/openai/definition.js +92 -0
  46. package/dist/openai/definition.js.map +1 -0
  47. package/dist/openai/index.d.ts +2 -0
  48. package/dist/openai/index.d.ts.map +1 -0
  49. package/dist/openai/index.js +2 -0
  50. package/dist/openai/index.js.map +1 -0
  51. package/dist/openai/provider.d.ts +2 -0
  52. package/dist/openai/provider.d.ts.map +1 -0
  53. package/dist/openai/provider.js +188 -0
  54. package/dist/openai/provider.js.map +1 -0
  55. package/dist/qwen/definition.d.ts +4 -0
  56. package/dist/qwen/definition.d.ts.map +1 -0
  57. package/dist/qwen/definition.js +210 -0
  58. package/dist/qwen/definition.js.map +1 -0
  59. package/dist/qwen/index.d.ts +2 -0
  60. package/dist/qwen/index.d.ts.map +1 -0
  61. package/dist/qwen/index.js +2 -0
  62. package/dist/qwen/index.js.map +1 -0
  63. package/dist/qwen/provider.d.ts +2 -0
  64. package/dist/qwen/provider.d.ts.map +1 -0
  65. package/dist/qwen/provider.js +237 -0
  66. package/dist/qwen/provider.js.map +1 -0
  67. package/dist/toolkit.d.ts +137 -0
  68. package/dist/toolkit.d.ts.map +1 -0
  69. package/dist/toolkit.js +490 -0
  70. package/dist/toolkit.js.map +1 -0
  71. package/dist/volcengine/definition.d.ts +4 -0
  72. package/dist/volcengine/definition.d.ts.map +1 -0
  73. package/dist/volcengine/definition.js +130 -0
  74. package/dist/volcengine/definition.js.map +1 -0
  75. package/dist/volcengine/index.d.ts +2 -0
  76. package/dist/volcengine/index.d.ts.map +1 -0
  77. package/dist/volcengine/index.js +2 -0
  78. package/dist/volcengine/index.js.map +1 -0
  79. package/dist/volcengine/provider.d.ts +2 -0
  80. package/dist/volcengine/provider.d.ts.map +1 -0
  81. package/dist/volcengine/provider.js +232 -0
  82. package/dist/volcengine/provider.js.map +1 -0
  83. package/package.json +51 -0
@@ -0,0 +1,237 @@
1
+ import { completed, defineHttpProvider, pendingProviderJob, pendingStatus, polledJob, stripUndefined, } from "../http.js";
2
+ import { assertNoUnusedMediaInputs, assetFromUrl, collectMediaInputs, describeMediaInput, getImageInputs, mediaInputToInlineBase64, requirePrompt, unsupportedAction, unsupportedInput, } from "../toolkit.js";
3
+ import { createMediaRouterError, } from "@miragari/core";
4
+ import { qwenModels, qwenStatusMap } from "./definition.js";
5
+ export const qwenProvider = defineHttpProvider({
6
+ id: "qwen",
7
+ displayName: "Qwen and Wan",
8
+ baseURL: "https://dashscope.aliyuncs.com/api/v1",
9
+ auth: { type: "bearer" },
10
+ defaultModels: {
11
+ image: "qwen-image-2.0-pro",
12
+ video: "wan2.7",
13
+ },
14
+ models: qwenModels,
15
+ statusMap: qwenStatusMap,
16
+ create: {
17
+ request: {
18
+ method: "POST",
19
+ path: (context) => context.request.type === "video"
20
+ ? "/services/aigc/video-generation/video-synthesis"
21
+ : context.model.async
22
+ ? "/services/aigc/text2image/image-synthesis"
23
+ : "/services/aigc/multimodal-generation/generation",
24
+ headers: (context) => context.model.async || context.request.type === "video"
25
+ ? { "X-DashScope-Async": "enable" }
26
+ : {},
27
+ body: (context) => context.request.type === "video"
28
+ ? videoBody(context)
29
+ : context.model.async
30
+ ? asyncImageBody(context)
31
+ : syncImageBody(context),
32
+ },
33
+ output: (response, context, helpers) => {
34
+ if (context.model.async || context.request.type === "video") {
35
+ return pendingProviderJob({
36
+ context,
37
+ providerJobId: response.output?.task_id,
38
+ status: response.output?.task_status
39
+ ? pendingStatus(helpers.statusFrom(response.output.task_status, { context }), "queued")
40
+ : "queued",
41
+ raw: response,
42
+ pollAfterMs: 10_000,
43
+ });
44
+ }
45
+ return completed({
46
+ context,
47
+ assets: qwenAssets(response, "image"),
48
+ raw: response,
49
+ });
50
+ },
51
+ },
52
+ poll: {
53
+ request: {
54
+ method: "GET",
55
+ path: (context) => `/tasks/${context.job.providerJobId}`,
56
+ },
57
+ output: (response, context, helpers) => {
58
+ const status = helpers.statusFrom(response.output?.task_status, { context });
59
+ return polledJob({
60
+ context,
61
+ status,
62
+ assets: status === "succeeded"
63
+ ? qwenAssets(response, context.job.type === "video" ? "video" : "image")
64
+ : undefined,
65
+ error: status === "failed"
66
+ ? qwenJobError(response, context.job.provider, context.job.model)
67
+ : undefined,
68
+ raw: response,
69
+ });
70
+ },
71
+ },
72
+ });
73
+ function syncImageBody(context) {
74
+ const images = getImageInputs(context.request);
75
+ const action = context.request.action;
76
+ if (action && action !== "generate" && action !== "reference" && action !== "edit") {
77
+ unsupportedAction(context);
78
+ }
79
+ if ((action === "reference" || action === "edit") && !images.length) {
80
+ unsupportedInput(context, "input.images", `${action} action requires images`);
81
+ }
82
+ if (!supportsImageInputs(context.request.model) && images.length) {
83
+ unsupportedInput(context, "input.images", "model does not support reference images");
84
+ }
85
+ assertNoUnusedMediaInputs(context, images.length ? ["referenceImage"] : []);
86
+ const content = [
87
+ ...images.map((image) => ({ image: qwenImageInput(context, image) })),
88
+ { text: requirePrompt(context) },
89
+ ];
90
+ return {
91
+ model: context.request.model,
92
+ input: {
93
+ messages: [
94
+ {
95
+ role: "user",
96
+ content,
97
+ },
98
+ ],
99
+ },
100
+ parameters: qwenParameters(context),
101
+ };
102
+ }
103
+ function videoBody(context) {
104
+ const action = context.request.action;
105
+ if (action && action !== "generate" && action !== "reference" && action !== "continue") {
106
+ unsupportedAction(context);
107
+ }
108
+ const media = qwenVideoMedia(context);
109
+ if ((action === "reference" || action === "continue") && !media.length) {
110
+ unsupportedInput(context, "input.image", `${action} action requires media input`);
111
+ }
112
+ assertNoUnusedMediaInputs(context, media.map((item) => item.role));
113
+ const providerModel = media.length ? "wan2.7-i2v" : "wan2.7-t2v";
114
+ const input = context.request.input;
115
+ return {
116
+ model: providerModel,
117
+ input: stripUndefined({
118
+ prompt: requirePrompt(context),
119
+ negative_prompt: input.negativePrompt,
120
+ media: media.length
121
+ ? media.map((item) => ({
122
+ type: qwenVideoMediaType(item),
123
+ url: qwenVideoMediaUrl(context, item),
124
+ }))
125
+ : undefined,
126
+ }),
127
+ parameters: qwenVideoParameters(context),
128
+ };
129
+ }
130
+ function asyncImageBody(context) {
131
+ if (context.request.action && context.request.action !== "generate") {
132
+ unsupportedAction(context);
133
+ }
134
+ assertNoUnusedMediaInputs(context, []);
135
+ return {
136
+ model: context.request.model,
137
+ input: {
138
+ prompt: requirePrompt(context),
139
+ },
140
+ parameters: qwenParameters(context),
141
+ };
142
+ }
143
+ function qwenParameters(context) {
144
+ const dimensions = context.resolved.dimensions;
145
+ const options = context.request.options;
146
+ const input = context.request.input;
147
+ const providerOptions = (context.request.providerOptions ?? {});
148
+ const width = dimensions?.fmtWidth ?? dimensions?.width;
149
+ const height = dimensions?.fmtHeight ?? dimensions?.height;
150
+ return stripUndefined({
151
+ n: options?.count,
152
+ negative_prompt: input.negativePrompt,
153
+ size: width && height ? `${width}*${height}` : dimensions?.providerSize,
154
+ seed: options?.seed,
155
+ ...providerOptions,
156
+ });
157
+ }
158
+ function qwenVideoParameters(context) {
159
+ const dimensions = context.resolved.dimensions;
160
+ const options = context.request.options;
161
+ return stripUndefined({
162
+ resolution: dimensions?.resolutionTier?.toUpperCase(),
163
+ duration: options?.duration,
164
+ seed: options?.seed,
165
+ ...context.request.providerOptions,
166
+ });
167
+ }
168
+ function qwenImageInput(context, input) {
169
+ const inline = mediaInputToInlineBase64(input);
170
+ if (inline)
171
+ return `data:${inline.mimeType};base64,${inline.data}`;
172
+ const described = describeMediaInput(input);
173
+ if (described.kind === "url")
174
+ return described.url;
175
+ unsupportedInput(context, "input.images", `unsupported media kind: ${described.kind}`);
176
+ }
177
+ function qwenAssets(response, type) {
178
+ if (type === "video") {
179
+ return assetFromUrl("video", response.output?.video_url, "video/mp4");
180
+ }
181
+ const choiceImages = response.output?.choices?.flatMap((choice) => choice.message?.content?.flatMap((item) => (item.image ? [item.image] : [])) ?? []) ?? [];
182
+ const resultImages = response.output?.results?.flatMap((item) => item.url ?? item.image ?? []) ?? [];
183
+ return [...choiceImages, ...resultImages].flatMap((url) => assetFromUrl("image", url, "image/png"));
184
+ }
185
+ function qwenVideoMedia(context) {
186
+ const media = collectMediaInputs(context.request).filter((item) => ["image", "firstFrame", "lastFrame", "referenceImage", "video", "audio"].includes(item.role));
187
+ const normalized = [];
188
+ const firstImage = media.find((item) => item.role === "image" || item.role === "firstFrame")
189
+ ?? media.find((item) => item.role === "referenceImage" && item.index === 0);
190
+ const lastImage = media.find((item) => item.role === "lastFrame")
191
+ ?? media.find((item) => item.role === "referenceImage" && item.index === 1);
192
+ const video = media.find((item) => item.role === "video");
193
+ const audio = media.find((item) => item.role === "audio");
194
+ if (video && firstImage) {
195
+ unsupportedInput(context, "input.video", "cannot combine input.video with first-frame images");
196
+ }
197
+ if (video)
198
+ normalized.push(video);
199
+ if (firstImage)
200
+ normalized.push(firstImage);
201
+ if (lastImage)
202
+ normalized.push(lastImage);
203
+ if (audio)
204
+ normalized.push(audio);
205
+ const unsupported = media.filter((item) => !normalized.includes(item));
206
+ if (unsupported.length) {
207
+ unsupportedInput(context, unsupported.map((item) => `input.${item.role}`).join(", "), "unsupported video media combination");
208
+ }
209
+ return normalized;
210
+ }
211
+ function qwenVideoMediaType(item) {
212
+ if (item.role === "video")
213
+ return "first_clip";
214
+ if (item.role === "audio")
215
+ return "driving_audio";
216
+ if (item.role === "lastFrame" || (item.role === "referenceImage" && item.index === 1)) {
217
+ return "last_frame";
218
+ }
219
+ return "first_frame";
220
+ }
221
+ function qwenVideoMediaUrl(context, item) {
222
+ if (item.role === "image" || item.role === "firstFrame" || item.role === "lastFrame" || item.role === "referenceImage") {
223
+ return qwenImageInput(context, item.input);
224
+ }
225
+ const described = describeMediaInput(item.input);
226
+ if (described.kind === "url")
227
+ return described.url;
228
+ unsupportedInput(context, `input.${item.role}`, `unsupported media kind: ${described.kind}`);
229
+ }
230
+ function qwenJobError(response, provider, model) {
231
+ return createMediaRouterError("PROVIDER_ERROR", response.message ?? response.code ?? "Qwen image task failed", { provider, model, raw: response });
232
+ }
233
+ function supportsImageInputs(model) {
234
+ return (model.startsWith("qwen-image-2.0") ||
235
+ model.startsWith("qwen-image-edit"));
236
+ }
237
+ //# sourceMappingURL=provider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/qwen/provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,137 @@
1
+ import type { GenerationJob, GenerationRequest, GenerationResult, GenerationStatus, MediaAsset, MediaInput, MediaType, ProviderCreateContext, ProviderCreateOutput, ProviderPollContext } from "@miragari/core";
2
+ type PromptFlagValue = string | number | boolean | undefined;
3
+ export type MediaInputRole = "image" | "referenceImage" | "mask" | "firstFrame" | "lastFrame" | "video" | "referenceVideo" | "audio" | "referenceAudio" | "model3d";
4
+ export type CollectedMediaInput = {
5
+ role: MediaInputRole;
6
+ input: MediaInput;
7
+ index: number;
8
+ };
9
+ export type DescribedMediaInput = {
10
+ kind: "url";
11
+ url: string;
12
+ mimeType?: string;
13
+ } | {
14
+ kind: "base64";
15
+ data: string;
16
+ mimeType: string;
17
+ } | {
18
+ kind: "bytes";
19
+ data: Uint8Array | ArrayBuffer;
20
+ mimeType: string;
21
+ filename?: string;
22
+ } | {
23
+ kind: "file";
24
+ path: string;
25
+ mimeType?: string;
26
+ };
27
+ export type InlineBase64MediaInput = {
28
+ data: string;
29
+ mimeType: string;
30
+ filename?: string;
31
+ };
32
+ export type ProviderAssetInput = MediaAsset | string | (Omit<MediaAsset, "type"> & {
33
+ type?: MediaType;
34
+ });
35
+ export type ProviderRequestIntent = {
36
+ type: MediaType;
37
+ action?: string;
38
+ prompt?: string;
39
+ text?: string;
40
+ options: Record<string, unknown>;
41
+ providerOptions: Record<string, unknown>;
42
+ media: CollectedMediaInput[];
43
+ images: MediaInput[];
44
+ videos: MediaInput[];
45
+ audios: MediaInput[];
46
+ model3d: MediaInput[];
47
+ firstImage?: MediaInput;
48
+ firstVideo?: MediaInput;
49
+ firstAudio?: MediaInput;
50
+ sourceModel?: MediaInput;
51
+ };
52
+ export declare function requestMediaType(context: ProviderCreateContext): MediaType;
53
+ export declare function isVideoRequest(context: ProviderCreateContext): boolean;
54
+ export declare function isImageRequest(context: ProviderCreateContext): boolean;
55
+ export declare function getPrompt(request: GenerationRequest): string | undefined;
56
+ export declare function requirePrompt(context: ProviderCreateContext): string;
57
+ export declare function requestIntent(context: ProviderCreateContext): ProviderRequestIntent;
58
+ export declare function getOutputMimeType(context: ProviderCreateContext, mediaType: "image" | "video", fallback?: string): string | undefined;
59
+ export declare function assetsFromImageData(data: Array<{
60
+ url?: string;
61
+ b64_json?: string;
62
+ base64?: string;
63
+ }> | undefined, context: ProviderCreateContext): MediaAsset[];
64
+ export declare function assetFromUrl(type: MediaType, url: string | undefined, mimeType?: string): MediaAsset[];
65
+ export declare function firstDefined<T>(...values: Array<T | undefined>): T | undefined;
66
+ export declare function collectMediaInputs(request: GenerationRequest): CollectedMediaInput[];
67
+ export declare function getImageInputs(request: GenerationRequest): MediaInput[];
68
+ export declare function getVideoInputs(request: GenerationRequest): MediaInput[];
69
+ export declare function getAudioInputs(request: GenerationRequest): MediaInput[];
70
+ export declare function getModel3DInputs(request: GenerationRequest): MediaInput[];
71
+ export declare function firstMediaInput(request: GenerationRequest, roles: MediaInputRole[]): MediaInput | undefined;
72
+ export declare function firstImageInput(request: GenerationRequest): MediaInput | undefined;
73
+ export declare function describeMediaInput(input: MediaInput): DescribedMediaInput;
74
+ export declare function mediaInputToInlineBase64(input: MediaInput): InlineBase64MediaInput | undefined;
75
+ export declare function appendPromptFlags(prompt: string, flags: Record<string, PromptFlagValue>): string;
76
+ export declare function getProviderOption<T>(context: ProviderCreateContext, key: string, fallback?: T): T | undefined;
77
+ export declare function badRequest(context: ProviderCreateContext, message: string, raw?: unknown): never;
78
+ export declare function unsupportedInput(context: ProviderCreateContext, inputPath: string, reason?: string): never;
79
+ export declare function unsupportedAction(context: ProviderCreateContext, action?: string | undefined): never;
80
+ export declare function assertNoUnusedMediaInputs(context: ProviderCreateContext, consumedRoles: MediaInputRole[]): void;
81
+ export type UnknownStatusStrategy = "running" | "failed" | "throw";
82
+ export type MissingStatusStrategy = "running" | "throw";
83
+ export declare function completedResult(input: {
84
+ context: ProviderCreateContext;
85
+ assets: ProviderAssetInput[];
86
+ raw?: unknown;
87
+ providerRequest?: unknown;
88
+ allowEmptyResult?: boolean;
89
+ }): GenerationResult;
90
+ export declare function completed(input: {
91
+ context: ProviderCreateContext;
92
+ assets: ProviderAssetInput[];
93
+ raw?: unknown;
94
+ providerRequest?: unknown;
95
+ allowEmptyResult?: boolean;
96
+ }): ProviderCreateOutput;
97
+ export declare function pendingJob(input: {
98
+ context: ProviderCreateContext;
99
+ providerJobId?: string;
100
+ providerState?: Record<string, unknown>;
101
+ status?: GenerationStatus;
102
+ raw?: unknown;
103
+ pollAfterMs?: number;
104
+ providerRequest?: unknown;
105
+ }): ProviderCreateOutput;
106
+ export declare function pendingProviderJob(input: {
107
+ context: ProviderCreateContext;
108
+ providerJobId: string | undefined;
109
+ providerState?: Record<string, unknown>;
110
+ status?: GenerationStatus;
111
+ raw?: unknown;
112
+ pollAfterMs?: number;
113
+ providerRequest?: unknown;
114
+ }): ProviderCreateOutput;
115
+ export declare function pendingStatus(status: GenerationStatus | undefined, fallback?: "queued" | "running"): "queued" | "running";
116
+ export declare function polledJob(input: {
117
+ context: ProviderPollContext;
118
+ status: GenerationStatus;
119
+ assets?: ProviderAssetInput[];
120
+ raw?: unknown;
121
+ error?: GenerationJob["error"];
122
+ providerState?: Record<string, unknown>;
123
+ allowEmptyResult?: boolean;
124
+ pollAfterMs?: number;
125
+ }): GenerationJob;
126
+ export declare function providerAsset(mediaType: MediaType, input: ProviderAssetInput): MediaAsset;
127
+ export declare function providerAssets(mediaType: MediaType, inputs: ProviderAssetInput[]): MediaAsset[];
128
+ export declare function statusFrom(providerStatus: string | undefined, statusMap: Record<string, GenerationStatus> | undefined, options?: {
129
+ provider?: string;
130
+ model?: string;
131
+ unknownStatus?: UnknownStatusStrategy;
132
+ missingStatus?: MissingStatusStrategy;
133
+ }): GenerationStatus;
134
+ export declare function providerError(error: unknown, provider: string, model?: string): import("@miragari/core").MediaRouterError;
135
+ export declare function stripUndefined<T extends Record<string, unknown>>(value: T): T;
136
+ export {};
137
+ //# sourceMappingURL=toolkit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolkit.d.ts","sourceRoot":"","sources":["../src/toolkit.ts"],"names":[],"mappings":"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"}