@zhivex-ai/qwen 0.15.3 → 0.16.2

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 (66) hide show
  1. package/README.md +46 -1
  2. package/dist/browser-realtime.d.ts +58 -0
  3. package/dist/browser-realtime.d.ts.map +1 -0
  4. package/dist/browser-realtime.js +259 -0
  5. package/dist/browser-realtime.js.map +1 -0
  6. package/dist/browser.d.ts +9 -0
  7. package/dist/browser.d.ts.map +1 -0
  8. package/dist/browser.js +7 -0
  9. package/dist/browser.js.map +1 -0
  10. package/dist/cloud-media.d.ts +89 -0
  11. package/dist/cloud-media.d.ts.map +1 -0
  12. package/dist/cloud-media.js +221 -0
  13. package/dist/cloud-media.js.map +1 -0
  14. package/dist/cloud-realtime.d.ts +58 -0
  15. package/dist/cloud-realtime.d.ts.map +1 -0
  16. package/dist/cloud-realtime.js +123 -0
  17. package/dist/cloud-realtime.js.map +1 -0
  18. package/dist/decision.d.ts +69 -0
  19. package/dist/decision.d.ts.map +1 -0
  20. package/dist/decision.js +122 -0
  21. package/dist/decision.js.map +1 -0
  22. package/dist/embeddings.d.ts +30 -0
  23. package/dist/embeddings.d.ts.map +1 -0
  24. package/dist/embeddings.js +94 -0
  25. package/dist/embeddings.js.map +1 -0
  26. package/dist/index.d.ts +40 -2
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +365 -144
  29. package/dist/index.js.map +1 -1
  30. package/dist/inference-audio.d.ts +146 -0
  31. package/dist/inference-audio.d.ts.map +1 -0
  32. package/dist/inference-audio.js +256 -0
  33. package/dist/inference-audio.js.map +1 -0
  34. package/dist/native-asr.d.ts +52 -0
  35. package/dist/native-asr.d.ts.map +1 -0
  36. package/dist/native-asr.js +162 -0
  37. package/dist/native-asr.js.map +1 -0
  38. package/dist/rtc-protocol.d.ts +10 -0
  39. package/dist/rtc-protocol.d.ts.map +1 -0
  40. package/dist/rtc-protocol.js +10 -0
  41. package/dist/rtc-protocol.js.map +1 -0
  42. package/dist/sdp-exchange.d.ts +8 -0
  43. package/dist/sdp-exchange.d.ts.map +1 -0
  44. package/dist/sdp-exchange.js +25 -0
  45. package/dist/sdp-exchange.js.map +1 -0
  46. package/dist/temporary-keys.d.ts +15 -0
  47. package/dist/temporary-keys.d.ts.map +1 -0
  48. package/dist/temporary-keys.js +28 -0
  49. package/dist/temporary-keys.js.map +1 -0
  50. package/dist/text-profiles.d.ts +7 -0
  51. package/dist/text-profiles.d.ts.map +1 -0
  52. package/dist/text-profiles.js +55 -0
  53. package/dist/text-profiles.js.map +1 -0
  54. package/dist/url-path.d.ts +3 -0
  55. package/dist/url-path.d.ts.map +1 -0
  56. package/dist/url-path.js +8 -0
  57. package/dist/url-path.js.map +1 -0
  58. package/dist/world-rtc.d.ts +30 -0
  59. package/dist/world-rtc.d.ts.map +1 -0
  60. package/dist/world-rtc.js +33 -0
  61. package/dist/world-rtc.js.map +1 -0
  62. package/dist/worlds.d.ts +134 -0
  63. package/dist/worlds.d.ts.map +1 -0
  64. package/dist/worlds.js +196 -0
  65. package/dist/worlds.js.map +1 -0
  66. package/package.json +6 -2
@@ -0,0 +1,122 @@
1
+ import { trimTrailingSlashes } from "./url-path.js";
2
+ import { ConfigurationError, ValidationError, ProviderHTTPError, assertTrustedEndpoint, readJsonWithLimit, withRetry, withTimeoutSignal } from "@zhivex-ai/core/provider";
3
+ const record = (value) => value !== null && typeof value === "object" && !Array.isArray(value);
4
+ const text = (value) => typeof value === "string" && value.trim().length > 0;
5
+ const probability = (value) => typeof value === "number" && Number.isFinite(value) && value >= 0 && value <= 1;
6
+ const fail = (message) => { throw new ValidationError(`Qwen decision: ${message}`); };
7
+ function sameKeys(value, keys) {
8
+ return Object.keys(value).length === keys.length && keys.every(key => Object.hasOwn(value, key));
9
+ }
10
+ function distribution(value, keys) {
11
+ if (!record(value) || !sameKeys(value, keys) || !Object.values(value).every(probability))
12
+ fail("invalid probability distribution.");
13
+ const sum = Object.values(value).reduce((a, b) => a + b, 0);
14
+ if (Math.abs(sum - 1) > 0.01)
15
+ fail("probabilities must sum to one.");
16
+ }
17
+ function validateQuestions(value) {
18
+ if (!record(value) || !Object.keys(value).length)
19
+ fail("questions must be a nonempty object.");
20
+ for (const [id, q] of Object.entries(value)) {
21
+ if (!text(id) || !record(q) || !text(q.instructions))
22
+ fail("each question requires an id and instructions.");
23
+ const question = q;
24
+ if (question.type === "choice") {
25
+ if (!record(question.criteria) || Object.keys(question.criteria).length < 2 || !Object.entries(question.criteria).every(([k, v]) => text(k) && text(v)))
26
+ fail("choice requires at least two named criteria.");
27
+ }
28
+ else if (question.type === "score") {
29
+ if (!Array.isArray(question.criteria) || question.criteria.length < 2 || !question.criteria.every(text))
30
+ fail("score requires at least two ordered criteria.");
31
+ }
32
+ else if (question.type !== "noul")
33
+ fail("unsupported question type.");
34
+ if (!Object.keys(question).every(key => ["type", "instructions", ...(question.type === "noul" ? [] : ["criteria"])].includes(key)))
35
+ fail("unsupported question option.");
36
+ }
37
+ }
38
+ function parse(value, questions, model) {
39
+ if (!record(value) || value.model !== model || !text(value.request_id) || !record(value.answers) || !sameKeys(value.answers, Object.keys(questions)))
40
+ fail("invalid response envelope.");
41
+ const json = value;
42
+ const answers = json.answers;
43
+ for (const [id, question] of Object.entries(questions)) {
44
+ const answer = answers[id];
45
+ if (!record(answer) || answer.type !== question.type)
46
+ fail("answer type does not match its question.");
47
+ const a = answer;
48
+ if (question.type === "noul") {
49
+ if (!probability(a.noul))
50
+ fail("invalid noul probability.");
51
+ }
52
+ else {
53
+ if (!probability(a.confidence))
54
+ fail("invalid confidence.");
55
+ const keys = question.type === "choice" ? Object.keys(question.criteria) : question.criteria.map((_, i) => String(i));
56
+ distribution(a.probabilities, keys);
57
+ if (question.type === "choice") {
58
+ if (typeof a.choice !== "string" || !keys.includes(a.choice))
59
+ fail("unknown choice.");
60
+ }
61
+ else {
62
+ if (typeof a.score !== "number" || !Number.isFinite(a.score) || a.score < 0 || a.score > keys.length - 1)
63
+ fail("score is outside its criteria range.");
64
+ if (!record(a.legend) || !sameKeys(a.legend, keys) || !keys.every((key, i) => a.legend[key] === question.criteria[i]))
65
+ fail("score legend does not match criteria.");
66
+ }
67
+ }
68
+ }
69
+ const usage = json.usage;
70
+ if (!record(usage) || !Number.isSafeInteger(usage.input_tokens) || usage.input_tokens < 0 || typeof json.latency_ms !== "number" || !Number.isFinite(json.latency_ms) || json.latency_ms < 0)
71
+ fail("invalid usage or latency.");
72
+ return { model, requestId: json.request_id, answers: answers, usage: { inputTokens: usage.input_tokens }, latencyMs: json.latency_ms };
73
+ }
74
+ export function createQwenDecisionModel(modelId, options) {
75
+ if (modelId !== "decision-model-preview")
76
+ throw new ConfigurationError("Qwen decisionModel currently supports decision-model-preview only.");
77
+ if (!text(options.apiKey))
78
+ throw new ConfigurationError("Qwen decisionModel requires an API key.");
79
+ const endpoint = `${trimTrailingSlashes(options.baseURL)}/systemone`;
80
+ assertTrustedEndpoint(endpoint, { protocols: ["https:"], allowUnsafe: options.allowUnsafeEndpoints, label: "Qwen decision endpoint" });
81
+ const fetcher = options.fetch ?? globalThis.fetch;
82
+ return {
83
+ provider: "qwen", modelId,
84
+ async decide(input) {
85
+ validateQuestions(input.questions);
86
+ if (!(text(input.state) || record(input.state)))
87
+ fail("state must be a nonempty string or JSON object.");
88
+ let body;
89
+ try {
90
+ body = JSON.stringify({ model: modelId, state: input.state, questions: input.questions }, (_key, value) => {
91
+ if (typeof value === "number" && !Number.isFinite(value) || typeof value === "undefined" || typeof value === "function" || typeof value === "symbol" || typeof value === "bigint")
92
+ fail("state and questions must be JSON serializable.");
93
+ return value;
94
+ });
95
+ }
96
+ catch {
97
+ return fail("state and questions must be JSON serializable.");
98
+ }
99
+ if (new TextEncoder().encode(body).byteLength > 1024 * 1024)
100
+ fail("request exceeds 1 MiB.");
101
+ // Snapshot validated questions so caller mutations during I/O cannot change validation.
102
+ const questions = JSON.parse(body).questions;
103
+ const { signal, cleanup } = withTimeoutSignal({ abortSignal: input.abortSignal, timeoutMs: input.timeoutMs ?? 30000 });
104
+ try {
105
+ const response = await withRetry(async () => {
106
+ const response = await fetcher(endpoint, { method: "POST", redirect: "error", signal, headers: { authorization: `Bearer ${options.apiKey}`, "content-type": "application/json" }, body });
107
+ if (!response.ok) {
108
+ await response.body?.cancel();
109
+ // Avoid retaining server error bodies that may echo sensitive business state.
110
+ throw new ProviderHTTPError(`Qwen decision request failed (${response.status}).`, response.status);
111
+ }
112
+ return response;
113
+ }, { maxRetries: input.maxRetries ?? 0, retryBackoffMs: input.retryBackoffMs, abortSignal: signal });
114
+ return parse(await readJsonWithLimit(response, { maxBytes: 1024 * 1024, provider: "qwen", endpoint: "systemone" }), questions, modelId);
115
+ }
116
+ finally {
117
+ cleanup();
118
+ }
119
+ }
120
+ };
121
+ }
122
+ //# sourceMappingURL=decision.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decision.js","sourceRoot":"","sources":["../src/decision.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { type EmbedResult, type EmbeddingModel, type RetryOptions } from "@zhivex-ai/core/provider";
2
+ /** DashScope extensions; dimensions also work through the compatible endpoint. */
3
+ export interface QwenEmbeddingOptions {
4
+ dimensions?: number;
5
+ text_type?: "query" | "document";
6
+ instruct?: string;
7
+ output_type?: "dense" | "sparse" | "dense&sparse";
8
+ }
9
+ export interface QwenSparseEmbedding {
10
+ index: number;
11
+ value: number;
12
+ token?: string;
13
+ }
14
+ export interface QwenNativeEmbeddingResult {
15
+ entries: Array<{
16
+ index: number;
17
+ embedding?: number[];
18
+ sparseEmbedding?: QwenSparseEmbedding[];
19
+ }>;
20
+ usage: EmbedResult["usage"];
21
+ rawResponse?: unknown;
22
+ }
23
+ export interface QwenTextEmbeddingModel extends EmbeddingModel {
24
+ embedNative(input: {
25
+ values: string[];
26
+ providerOptions?: QwenEmbeddingOptions;
27
+ } & RetryOptions): Promise<QwenNativeEmbeddingResult>;
28
+ }
29
+ export declare function createQwenTextEmbeddingModel(modelId: string, apiKey: string, baseURL: string, taskBaseURL: string, fetcher: typeof globalThis.fetch): QwenTextEmbeddingModel;
30
+ //# sourceMappingURL=embeddings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddings.d.ts","sourceRoot":"","sources":["../src/embeddings.ts"],"names":[],"mappings":"AAAA,OAAO,EACY,KAAK,WAAW,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG9G,kFAAkF;AAClF,MAAM,WAAW,oBAAoB;IACnC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,cAAc,CAAC;CACnD;AACD,MAAM,WAAW,mBAAmB;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE;AACrF,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,eAAe,CAAC,EAAE,mBAAmB,EAAE,CAAA;KAAE,CAAC,CAAC;IACjG,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AACD,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,WAAW,CAAC,KAAK,EAAE;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,eAAe,CAAC,EAAE,oBAAoB,CAAA;KAAE,GAAG,YAAY,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;CACrI;AAOD,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAC3F,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,UAAU,CAAC,KAAK,GAAG,sBAAsB,CAsE/E"}
@@ -0,0 +1,94 @@
1
+ import { ConfigurationError, ValidationError, readJsonWithLimit, withResponseRetry, withTimeoutSignal } from "@zhivex-ai/core/provider";
2
+ import { embeddingCapabilities } from "./capabilities.js";
3
+ const dimensions = {
4
+ "qwen3.7-text-embedding": [256, 512, 768, 1024, 1536, 2048, 2560],
5
+ "text-embedding-v4": [64, 128, 256, 512, 768, 1024, 1536, 2048],
6
+ "text-embedding-v3": [512, 768, 1024]
7
+ };
8
+ export function createQwenTextEmbeddingModel(modelId, apiKey, baseURL, taskBaseURL, fetcher) {
9
+ const request = async (input, native) => {
10
+ const options = (input.providerOptions ?? {});
11
+ const allowed = new Set(["dimensions", "text_type", "instruct", "output_type"]);
12
+ if (Object.keys(options).some(key => !allowed.has(key)))
13
+ throw new ConfigurationError("Unknown Qwen embedding option.");
14
+ if (!Array.isArray(input.values) || !input.values.length || input.values.some(v => typeof v !== "string" || !v.trim())) {
15
+ throw new ConfigurationError("Qwen text embeddings require nonempty text inputs.");
16
+ }
17
+ const batchLimit = modelId === "qwen3.7-text-embedding" ? 20 : dimensions[modelId] ? 10 : undefined;
18
+ if (batchLimit && input.values.length > batchLimit)
19
+ throw new ConfigurationError(`Qwen ${modelId} accepts at most ${batchLimit} texts per request.`);
20
+ if (options.dimensions !== undefined && (!Number.isSafeInteger(options.dimensions) || options.dimensions < 1 ||
21
+ dimensions[modelId] && !dimensions[modelId].includes(options.dimensions)))
22
+ throw new ConfigurationError("Unsupported Qwen embedding dimensions.");
23
+ if (options.text_type !== undefined && !["query", "document"].includes(options.text_type))
24
+ throw new ConfigurationError("Invalid embedding text_type.");
25
+ if (options.output_type !== undefined && !["dense", "sparse", "dense&sparse"].includes(options.output_type))
26
+ throw new ConfigurationError("Invalid embedding output_type.");
27
+ if (options.instruct !== undefined && (typeof options.instruct !== "string" || !options.instruct.trim() || options.text_type !== "query" || modelId === "text-embedding-v3")) {
28
+ throw new ConfigurationError("Embedding instructions require text_type query and a model supporting instructions.");
29
+ }
30
+ if (!native && options.output_type === "sparse")
31
+ throw new ConfigurationError("Use embedNative() for sparse-only embeddings.");
32
+ const dashscope = native || options.text_type !== undefined || options.instruct !== undefined || options.output_type !== undefined;
33
+ const { signal, cleanup, abort } = withTimeoutSignal({ ...input, timeoutMs: input.timeoutMs ?? 30000 });
34
+ try {
35
+ const response = await withResponseRetry(() => fetcher(dashscope
36
+ ? `${taskBaseURL}/services/embeddings/text-embedding/text-embedding` : `${baseURL}/embeddings`, {
37
+ method: "POST", redirect: "error", signal,
38
+ headers: { authorization: `Bearer ${apiKey}`, "content-type": "application/json" },
39
+ body: JSON.stringify(dashscope ? { model: modelId, input: { texts: input.values }, parameters: {
40
+ dimension: options.dimensions, text_type: options.text_type, instruct: options.instruct, output_type: options.output_type
41
+ } } : { model: modelId, input: input.values, ...(options.dimensions === undefined ? {} : { dimensions: options.dimensions }) })
42
+ }), { ...input, abortSignal: signal }, "Qwen embeddings");
43
+ const json = await readJsonWithLimit(response, { maxBytes: 16 * 1024 * 1024, provider: "qwen", endpoint: "embeddings", abort });
44
+ if (!json || typeof json !== "object" || Array.isArray(json))
45
+ throw new ValidationError("Invalid Qwen embedding response.");
46
+ const data = dashscope ? json.output?.embeddings : json.data;
47
+ if (json.code || !Array.isArray(data) || data.length !== input.values.length)
48
+ throw new ValidationError("Invalid Qwen embedding response.");
49
+ const seen = new Set();
50
+ // Older compatible responses omit all indexes; preserve their array order.
51
+ const unindexed = !dashscope && data.every((item) => item?.index === undefined);
52
+ let denseLength;
53
+ const entries = data.map((item, position) => {
54
+ const index = dashscope ? item?.text_index : unindexed ? position : item?.index;
55
+ if (!Number.isInteger(index) || index < 0 || index >= input.values.length || seen.has(index))
56
+ throw new ValidationError("Invalid Qwen embedding result index.");
57
+ seen.add(index);
58
+ const dense = item.embedding;
59
+ const sparse = item.sparse_embedding;
60
+ if ((options.output_type !== "sparse" || dense !== undefined) && (!Array.isArray(dense) || !dense.length || dense.some((v) => typeof v !== "number" || !Number.isFinite(v)) ||
61
+ options.dimensions !== undefined && dense.length !== options.dimensions))
62
+ throw new ValidationError("Invalid Qwen dense embedding.");
63
+ if (Array.isArray(dense)) {
64
+ if (denseLength !== undefined && dense.length !== denseLength)
65
+ throw new ValidationError("Inconsistent Qwen embedding dimensions.");
66
+ denseLength = dense.length;
67
+ }
68
+ if ((options.output_type?.includes("sparse") || sparse !== undefined) && (!Array.isArray(sparse) || sparse.some((v) => !v || !Number.isSafeInteger(v.index) || v.index < 0 || typeof v.value !== "number" || !Number.isFinite(v.value) || v.token !== undefined && typeof v.token !== "string") || new Set(sparse.map((v) => v.index)).size !== sparse.length)) {
69
+ throw new ValidationError("Invalid Qwen sparse embedding.");
70
+ }
71
+ return { index, ...(Array.isArray(dense) ? { embedding: dense } : {}),
72
+ ...(Array.isArray(sparse) ? { sparseEmbedding: sparse } : {}) };
73
+ }).sort((a, b) => a.index - b.index);
74
+ for (const value of [json.usage?.prompt_tokens, json.usage?.total_tokens]) {
75
+ if (value !== undefined && (!Number.isSafeInteger(value) || value < 0))
76
+ throw new ValidationError("Invalid Qwen embedding usage.");
77
+ }
78
+ return { entries, rawResponse: json, usage: { inputTokens: json.usage?.prompt_tokens ?? json.usage?.total_tokens, totalTokens: json.usage?.total_tokens } };
79
+ }
80
+ finally {
81
+ cleanup();
82
+ }
83
+ };
84
+ return {
85
+ provider: "qwen", modelId, capabilities: embeddingCapabilities,
86
+ async embed(input) {
87
+ const result = await request(input, false);
88
+ return { embeddings: result.entries.map(entry => entry.embedding), usage: result.usage,
89
+ rawResponse: result.rawResponse };
90
+ },
91
+ embedNative: input => request(input, true)
92
+ };
93
+ }
94
+ //# sourceMappingURL=embeddings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"embeddings.js","sourceRoot":"","sources":["../src/embeddings.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,14 +1,39 @@
1
+ export { createQwenSDPExchange } from "./sdp-exchange.js";
2
+ export { connectQwenWebRTC, connectQwenAOQ } from "./browser-realtime.js";
3
+ export type * from "./browser-realtime.js";
4
+ import { type QwenTemporaryKeysClient } from "./temporary-keys.js";
5
+ export type { QwenTemporaryKey, QwenTemporaryKeyOptions, QwenTemporaryKeysClient } from "./temporary-keys.js";
6
+ import { type QwenFileTranscriptionModel } from "./native-asr.js";
7
+ export type * from "./native-asr.js";
8
+ export { createQwenWorldRTC } from "./world-rtc.js";
9
+ export type * from "./world-rtc.js";
10
+ import type { QwenCloudRealtimeSession } from "./cloud-realtime.js";
11
+ export type { QwenCloudRealtimeOptions, QwenRealtimeMCPServer, QwenCloudRealtimeSession } from "./cloud-realtime.js";
12
+ import { type QwenImageTranslationModel } from "./cloud-media.js";
13
+ export type * from "./cloud-media.js";
14
+ import { type QwenWorldsClient, type QwenWorldModelId } from "./worlds.js";
15
+ export type * from "./worlds.js";
16
+ import { QwenCloudStreamingASRModel } from "./inference-audio.js";
17
+ export type { QwenCloudSpeechOptions, QwenCloudASROptions, QwenASRTranscript } from "./inference-audio.js";
18
+ import { type QwenDecisionModel } from "./decision.js";
19
+ export type * from "./decision.js";
20
+ import { type QwenTextEmbeddingModel } from "./embeddings.js";
21
+ export type { QwenEmbeddingOptions, QwenSparseEmbedding, QwenNativeEmbeddingResult, QwenTextEmbeddingModel } from "./embeddings.js";
1
22
  import { type QwenVoicesClient } from "./voices.js";
2
23
  export type { QwenVoice, QwenVoiceCreateInput, QwenVoiceRequestOptions, QwenVoicesClient } from "./voices.js";
3
24
  export type { QwenLiveTranslateProviderOptions } from "./live-translate.js";
4
- import { type AudioResponseLimits, type CallableProviderAdapter, type EmbedInput, type EmbeddingModel, type EmbedResult, type JsonValue, type LanguageModel, type MediaInput, type PredictionOperation, type RealtimeConnectionFactory } from "@zhivex-ai/core/provider";
25
+ import { type AudioResponseLimits, type CallableProviderAdapter, type EmbedInput, type EmbeddingModel, type EmbedResult, type JsonValue, type LanguageModel, type MediaInput, type PredictionOperation, type RealtimeConnectOptions, type RealtimeConnectionFactory, type RealtimeModel, type RealtimeSessionConfig } from "@zhivex-ai/core/provider";
5
26
  export interface QwenProviderOptions {
6
27
  apiKey?: string;
7
28
  workspaceId?: string;
8
29
  region?: QwenRegion;
9
30
  baseURL?: string;
10
31
  taskBaseURL?: string;
32
+ /** Explicit endpoint for the separately deployed decision preview. */
33
+ decisionBaseURL?: string;
11
34
  realtimeURL?: string;
35
+ /** Inference WebSocket for binary TTS/ASR; separate from conversational realtime. */
36
+ inferenceURL?: string;
12
37
  realtimeConnectionFactory?: RealtimeConnectionFactory;
13
38
  fetch?: typeof globalThis.fetch;
14
39
  responseLimits?: AudioResponseLimits;
@@ -18,6 +43,8 @@ export interface QwenProviderOptions {
18
43
  allowUnsafeEndpoints?: boolean;
19
44
  }
20
45
  export type QwenSpeechAudioURLValidator = (url: URL) => boolean | Promise<boolean>;
46
+ export declare const QWEN_CLOUD_BASE_URL = "https://maas.qwencloudapi.com/compatible-mode/v1";
47
+ export declare const QWEN_DECISION_PREVIEW_BASE_URL = "https://trial.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1";
21
48
  export declare const QWEN_TOKEN_PLAN_BASE_URL = "https://token-plan.maas.qwencloudapi.com/compatible-mode/v1";
22
49
  export interface QwenLanguageModelOptions {
23
50
  apiMode?: "auto" | "responses" | "chat";
@@ -97,8 +124,19 @@ export interface QwenTasksClient {
97
124
  retryBackoffMs?: number;
98
125
  }): Promise<PredictionOperation>;
99
126
  }
100
- export type QwenProvider = CallableProviderAdapter<LanguageModel<QwenLanguageModelOptions>> & {
127
+ export interface QwenRealtimeModelAdapter extends RealtimeModel {
128
+ connect(config?: RealtimeSessionConfig, options?: RealtimeConnectOptions): Promise<QwenCloudRealtimeSession>;
129
+ }
130
+ export type QwenProvider = Omit<CallableProviderAdapter<LanguageModel<QwenLanguageModelOptions>>, "realtimeModel"> & ((modelId: string) => LanguageModel<QwenLanguageModelOptions>) & {
131
+ realtimeModel(modelId: string): QwenRealtimeModelAdapter;
132
+ fileTranscriptionModel(modelId: string): QwenFileTranscriptionModel;
101
133
  rawFetch: typeof globalThis.fetch;
134
+ temporaryKeys: QwenTemporaryKeysClient;
135
+ textEmbeddingModel(modelId: string): QwenTextEmbeddingModel;
136
+ decisionModel(modelId?: string): QwenDecisionModel;
137
+ imageTranslationModel(modelId?: string): QwenImageTranslationModel;
138
+ worlds(modelId: QwenWorldModelId): QwenWorldsClient;
139
+ streamingASRModel(modelId: string): QwenCloudStreamingASRModel;
102
140
  rerankModel(modelId: string): QwenRerankModel;
103
141
  multimodalEmbeddingModel(modelId: string): QwenMultimodalEmbeddingModel;
104
142
  tasks: QwenTasksClient;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}