ai 7.0.60 → 7.0.61
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 +10 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +17 -3
- package/dist/index.js.map +1 -1
- package/dist/internal/index.js +1 -1
- package/docs/02-foundations/02-providers-and-models.mdx +3 -3
- package/package.json +3 -3
- package/src/ui/chat.ts +20 -4
package/dist/internal/index.js
CHANGED
|
@@ -163,9 +163,9 @@ Here are the capabilities of popular models:
|
|
|
163
163
|
| [Mistral](/providers/ai-sdk-providers/mistral) | `pixtral-12b-2409` | <Check /> | <Check /> | <Check /> | <Check /> |
|
|
164
164
|
| [DeepSeek](/providers/ai-sdk-providers/deepseek) | `deepseek-chat` | <Cross /> | <Check /> | <Check /> | <Check /> |
|
|
165
165
|
| [DeepSeek](/providers/ai-sdk-providers/deepseek) | `deepseek-reasoner` | <Cross /> | <Check /> | <Check /> | <Check /> |
|
|
166
|
-
| [Cerebras](/providers/ai-sdk-providers/cerebras) | `
|
|
167
|
-
| [Cerebras](/providers/ai-sdk-providers/cerebras) | `
|
|
168
|
-
| [Cerebras](/providers/ai-sdk-providers/cerebras) | `
|
|
166
|
+
| [Cerebras](/providers/ai-sdk-providers/cerebras) | `gpt-oss-120b` | <Cross /> | <Check /> | <Check /> | <Check /> |
|
|
167
|
+
| [Cerebras](/providers/ai-sdk-providers/cerebras) | `zai-glm-4.7` | <Cross /> | <Check /> | <Check /> | <Check /> |
|
|
168
|
+
| [Cerebras](/providers/ai-sdk-providers/cerebras) | `gemma-4-31b` | <Check /> | <Check /> | <Check /> | <Check /> |
|
|
169
169
|
| [Groq](/providers/ai-sdk-providers/groq) | `meta-llama/llama-4-scout-17b-16e-instruct` | <Check /> | <Check /> | <Check /> | <Check /> |
|
|
170
170
|
| [Groq](/providers/ai-sdk-providers/groq) | `llama-3.3-70b-versatile` | <Cross /> | <Check /> | <Check /> | <Check /> |
|
|
171
171
|
| [Groq](/providers/ai-sdk-providers/groq) | `llama-3.1-8b-instant` | <Cross /> | <Check /> | <Check /> | <Check /> |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ai",
|
|
3
|
-
"version": "7.0.
|
|
3
|
+
"version": "7.0.61",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "AI SDK by Vercel - build apps like ChatGPT, Claude, Gemini, and more with a single interface for any model using the Vercel AI Gateway or go direct to OpenAI, Anthropic, Google, or any other model provider.",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -42,9 +42,9 @@
|
|
|
42
42
|
}
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
|
-
"@ai-sdk/gateway": "4.0.
|
|
45
|
+
"@ai-sdk/gateway": "4.0.49",
|
|
46
46
|
"@ai-sdk/provider": "4.0.7",
|
|
47
|
-
"@ai-sdk/provider-utils": "5.0.
|
|
47
|
+
"@ai-sdk/provider-utils": "5.0.27"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@edge-runtime/vm": "^5.0.0",
|
package/src/ui/chat.ts
CHANGED
|
@@ -257,6 +257,7 @@ export abstract class AbstractChat<UI_MESSAGE extends UIMessage> {
|
|
|
257
257
|
private onData?: ChatInit<UI_MESSAGE>['onData'];
|
|
258
258
|
private sendAutomaticallyWhen?: ChatInit<UI_MESSAGE>['sendAutomaticallyWhen'];
|
|
259
259
|
|
|
260
|
+
private pendingMessagePreparations = new Set<AbortController>();
|
|
260
261
|
private activeResponse: ActiveResponse<UI_MESSAGE> | undefined = undefined;
|
|
261
262
|
private activeResumeRequest: ActiveResumeRequest | undefined = undefined;
|
|
262
263
|
private jobExecutor = new SerialJobExecutor();
|
|
@@ -370,9 +371,21 @@ export abstract class AbstractChat<UI_MESSAGE extends UIMessage> {
|
|
|
370
371
|
let uiMessage: CreateUIMessage<UI_MESSAGE>;
|
|
371
372
|
|
|
372
373
|
if ('text' in message || 'files' in message) {
|
|
373
|
-
const
|
|
374
|
-
|
|
375
|
-
|
|
374
|
+
const abortController = new AbortController();
|
|
375
|
+
this.pendingMessagePreparations.add(abortController);
|
|
376
|
+
|
|
377
|
+
let fileParts: FileUIPart[];
|
|
378
|
+
try {
|
|
379
|
+
fileParts = Array.isArray(message.files)
|
|
380
|
+
? message.files
|
|
381
|
+
: await convertFileListToFileUIParts(message.files);
|
|
382
|
+
} finally {
|
|
383
|
+
this.pendingMessagePreparations.delete(abortController);
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
if (abortController.signal.aborted) {
|
|
387
|
+
return;
|
|
388
|
+
}
|
|
376
389
|
|
|
377
390
|
uiMessage = {
|
|
378
391
|
parts: [
|
|
@@ -589,6 +602,9 @@ export abstract class AbstractChat<UI_MESSAGE extends UIMessage> {
|
|
|
589
602
|
* Abort the current request immediately, keep the generated tokens if any.
|
|
590
603
|
*/
|
|
591
604
|
stop = async () => {
|
|
605
|
+
for (const controller of this.pendingMessagePreparations) {
|
|
606
|
+
controller.abort();
|
|
607
|
+
}
|
|
592
608
|
this.activeResumeRequest?.abortController.abort();
|
|
593
609
|
this.activeResponse?.abortController.abort();
|
|
594
610
|
};
|
|
@@ -705,7 +721,7 @@ export abstract class AbstractChat<UI_MESSAGE extends UIMessage> {
|
|
|
705
721
|
const response = {
|
|
706
722
|
state: createStreamingUIMessageState({
|
|
707
723
|
lastMessage:
|
|
708
|
-
trigger === 'regenerate-message'
|
|
724
|
+
trigger === 'resume-stream' || trigger === 'regenerate-message'
|
|
709
725
|
? undefined
|
|
710
726
|
: this.state.snapshot(lastMessage),
|
|
711
727
|
messageId: this.generateId(),
|