@ai-sdk/xai 3.0.112 → 3.0.114
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.
- package/CHANGELOG.md +14 -0
- package/dist/index.js +50 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +54 -6
- package/dist/index.mjs.map +1 -1
- package/docs/01-xai.mdx +24 -18
- package/package.json +3 -3
- package/src/xai-video-model.ts +68 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @ai-sdk/xai
|
|
2
2
|
|
|
3
|
+
## 3.0.114
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 5d0c5f4: fix(xai): video generation no longer hangs while polling status
|
|
8
|
+
|
|
9
|
+
## 3.0.113
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Updated dependencies [9ecdefe]
|
|
14
|
+
- @ai-sdk/provider-utils@4.0.41
|
|
15
|
+
- @ai-sdk/openai-compatible@2.0.63
|
|
16
|
+
|
|
3
17
|
## 3.0.112
|
|
4
18
|
|
|
5
19
|
### Patch Changes
|
package/dist/index.js
CHANGED
|
@@ -2933,7 +2933,7 @@ var xaiTools = {
|
|
|
2933
2933
|
};
|
|
2934
2934
|
|
|
2935
2935
|
// src/version.ts
|
|
2936
|
-
var VERSION = true ? "3.0.
|
|
2936
|
+
var VERSION = true ? "3.0.114" : "0.0.0-test";
|
|
2937
2937
|
|
|
2938
2938
|
// src/xai-video-model.ts
|
|
2939
2939
|
var import_provider6 = require("@ai-sdk/provider");
|
|
@@ -3357,13 +3357,60 @@ var xaiVideoStatusResponseSchema = import_v417.z.object({
|
|
|
3357
3357
|
var xaiVideoStatusJsonResponseHandler = (0, import_provider_utils16.createJsonResponseHandler)(
|
|
3358
3358
|
xaiVideoStatusResponseSchema
|
|
3359
3359
|
);
|
|
3360
|
+
var MAX_PENDING_BODY_BYTES = 1024 * 1024;
|
|
3361
|
+
var textDecoder = new TextDecoder();
|
|
3362
|
+
async function readPendingBody({
|
|
3363
|
+
response,
|
|
3364
|
+
url,
|
|
3365
|
+
requestBodyValues
|
|
3366
|
+
}) {
|
|
3367
|
+
if (response.body == null) {
|
|
3368
|
+
return "";
|
|
3369
|
+
}
|
|
3370
|
+
const reader = response.body.getReader();
|
|
3371
|
+
const chunks = [];
|
|
3372
|
+
let totalBytes = 0;
|
|
3373
|
+
try {
|
|
3374
|
+
while (true) {
|
|
3375
|
+
const { done, value } = await reader.read();
|
|
3376
|
+
if (done) break;
|
|
3377
|
+
totalBytes += value.length;
|
|
3378
|
+
if (totalBytes > MAX_PENDING_BODY_BYTES) {
|
|
3379
|
+
throw new import_provider6.APICallError({
|
|
3380
|
+
message: `xAI video status response exceeded ${MAX_PENDING_BODY_BYTES} bytes`,
|
|
3381
|
+
url,
|
|
3382
|
+
requestBodyValues,
|
|
3383
|
+
statusCode: response.status,
|
|
3384
|
+
responseHeaders: (0, import_provider_utils16.extractResponseHeaders)(response)
|
|
3385
|
+
});
|
|
3386
|
+
}
|
|
3387
|
+
chunks.push(value);
|
|
3388
|
+
}
|
|
3389
|
+
} finally {
|
|
3390
|
+
reader.releaseLock();
|
|
3391
|
+
}
|
|
3392
|
+
const merged = new Uint8Array(totalBytes);
|
|
3393
|
+
let offset = 0;
|
|
3394
|
+
for (const chunk of chunks) {
|
|
3395
|
+
merged.set(chunk, offset);
|
|
3396
|
+
offset += chunk.length;
|
|
3397
|
+
}
|
|
3398
|
+
return textDecoder.decode(merged);
|
|
3399
|
+
}
|
|
3360
3400
|
var xaiVideoStatusResponseHandler = async (options) => {
|
|
3361
3401
|
if (options.response.status === 202) {
|
|
3362
3402
|
const responseHeaders = (0, import_provider_utils16.extractResponseHeaders)(options.response);
|
|
3363
|
-
await (
|
|
3403
|
+
const text = await readPendingBody(options);
|
|
3404
|
+
if (text.trim().length === 0) {
|
|
3405
|
+
return { responseHeaders, value: { status: "pending" } };
|
|
3406
|
+
}
|
|
3407
|
+
const parsed = await (0, import_provider_utils16.safeParseJSON)({
|
|
3408
|
+
text,
|
|
3409
|
+
schema: xaiVideoStatusResponseSchema
|
|
3410
|
+
});
|
|
3364
3411
|
return {
|
|
3365
3412
|
responseHeaders,
|
|
3366
|
-
value: { status: "pending" }
|
|
3413
|
+
value: parsed.success ? parsed.value : { status: "pending" }
|
|
3367
3414
|
};
|
|
3368
3415
|
}
|
|
3369
3416
|
return xaiVideoStatusJsonResponseHandler(options);
|