@mastra/core 0.15.3-alpha.1 → 0.15.3-alpha.3
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/dist/agent/index.cjs +11 -11
- package/dist/agent/index.js +2 -2
- package/dist/agent/input-processor/index.cjs +6 -6
- package/dist/agent/input-processor/index.js +1 -1
- package/dist/agent/message-list/index.d.ts +5 -1
- package/dist/agent/message-list/index.d.ts.map +1 -1
- package/dist/agent/message-list/prompt/convert-file.d.ts +7 -0
- package/dist/agent/message-list/prompt/convert-file.d.ts.map +1 -0
- package/dist/agent/message-list/prompt/download-assets.d.ts +15 -0
- package/dist/agent/message-list/prompt/download-assets.d.ts.map +1 -0
- package/dist/{chunk-6VROHRAR.cjs → chunk-24TFSB6Z.cjs} +30 -7
- package/dist/chunk-24TFSB6Z.cjs.map +1 -0
- package/dist/{chunk-BRNBKCHE.js → chunk-5TFCIXWE.js} +10 -8
- package/dist/chunk-5TFCIXWE.js.map +1 -0
- package/dist/{chunk-TINMY4WA.js → chunk-APVV75XG.js} +3 -3
- package/dist/{chunk-TINMY4WA.js.map → chunk-APVV75XG.js.map} +1 -1
- package/dist/{chunk-HRDADYVX.cjs → chunk-AYFN43FB.cjs} +4 -4
- package/dist/{chunk-HRDADYVX.cjs.map → chunk-AYFN43FB.cjs.map} +1 -1
- package/dist/{chunk-FGCA6CCM.js → chunk-BGOXFBFK.js} +295 -275
- package/dist/chunk-BGOXFBFK.js.map +1 -0
- package/dist/{chunk-XEY3CWQW.cjs → chunk-D2GH2HAK.cjs} +9 -9
- package/dist/{chunk-XEY3CWQW.cjs.map → chunk-D2GH2HAK.cjs.map} +1 -1
- package/dist/{chunk-6Z7D7CA3.cjs → chunk-DJKIK6ZB.cjs} +326 -306
- package/dist/chunk-DJKIK6ZB.cjs.map +1 -0
- package/dist/{chunk-XOZ737RO.js → chunk-EMAAAVRA.js} +3 -3
- package/dist/{chunk-XOZ737RO.js.map → chunk-EMAAAVRA.js.map} +1 -1
- package/dist/chunk-GOG77M6R.js +103 -0
- package/dist/chunk-GOG77M6R.js.map +1 -0
- package/dist/{chunk-UG3KS3XV.cjs → chunk-HXEHQLBD.cjs} +4 -4
- package/dist/{chunk-UG3KS3XV.cjs.map → chunk-HXEHQLBD.cjs.map} +1 -1
- package/dist/{chunk-MKWJKRSX.js → chunk-MEROMP3Z.js} +3 -3
- package/dist/{chunk-MKWJKRSX.js.map → chunk-MEROMP3Z.js.map} +1 -1
- package/dist/{chunk-C5C4PN54.js → chunk-O7IQL4DX.js} +288 -5
- package/dist/chunk-O7IQL4DX.js.map +1 -0
- package/dist/{chunk-VBAWR62U.cjs → chunk-QHEB6ZLO.cjs} +13 -11
- package/dist/chunk-QHEB6ZLO.cjs.map +1 -0
- package/dist/{chunk-5MCNXLGT.js → chunk-TQRLZH64.js} +4 -4
- package/dist/{chunk-5MCNXLGT.js.map → chunk-TQRLZH64.js.map} +1 -1
- package/dist/{chunk-QA2TWVUS.cjs → chunk-TWNFR6MQ.cjs} +288 -5
- package/dist/chunk-TWNFR6MQ.cjs.map +1 -0
- package/dist/{chunk-CDLIHAX2.cjs → chunk-UGN2UU3K.cjs} +4 -4
- package/dist/{chunk-CDLIHAX2.cjs.map → chunk-UGN2UU3K.cjs.map} +1 -1
- package/dist/{chunk-E3LAPNKY.js → chunk-WUQSFK7W.js} +4 -4
- package/dist/{chunk-E3LAPNKY.js.map → chunk-WUQSFK7W.js.map} +1 -1
- package/dist/{chunk-QBNRMJAN.cjs → chunk-YTVX52NU.cjs} +6 -6
- package/dist/{chunk-QBNRMJAN.cjs.map → chunk-YTVX52NU.cjs.map} +1 -1
- package/dist/chunk-ZAJTIZZF.cjs +108 -0
- package/dist/chunk-ZAJTIZZF.cjs.map +1 -0
- package/dist/{chunk-FLXWZUIG.js → chunk-ZC64CG7J.js} +26 -4
- package/dist/chunk-ZC64CG7J.js.map +1 -0
- package/dist/index.cjs +47 -43
- package/dist/index.js +10 -10
- package/dist/integration/index.cjs +3 -3
- package/dist/integration/index.js +1 -1
- package/dist/llm/model/model.d.ts.map +1 -1
- package/dist/llm/model/model.loop.d.ts +1 -1
- package/dist/llm/model/model.loop.d.ts.map +1 -1
- package/dist/loop/index.cjs +2 -2
- package/dist/loop/index.js +1 -1
- package/dist/loop/types.d.ts +2 -0
- package/dist/loop/types.d.ts.map +1 -1
- package/dist/loop/workflow/llm-execution.d.ts +1 -1
- package/dist/loop/workflow/llm-execution.d.ts.map +1 -1
- package/dist/mastra/index.cjs +2 -2
- package/dist/mastra/index.js +1 -1
- package/dist/memory/index.cjs +4 -4
- package/dist/memory/index.js +1 -1
- package/dist/network/index.cjs +4 -4
- package/dist/network/index.js +2 -2
- package/dist/network/vNext/index.cjs +14 -14
- package/dist/network/vNext/index.js +2 -2
- package/dist/processors/index.cjs +8 -8
- package/dist/processors/index.js +2 -2
- package/dist/relevance/index.cjs +4 -4
- package/dist/relevance/index.js +1 -1
- package/dist/scores/index.cjs +5 -5
- package/dist/scores/index.js +1 -1
- package/dist/storage/index.cjs +3 -3
- package/dist/storage/index.js +1 -1
- package/dist/stream/aisdk/v5/compat/consume-stream.d.ts +8 -0
- package/dist/stream/aisdk/v5/compat/consume-stream.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/compat/content.d.ts +7 -0
- package/dist/stream/aisdk/v5/compat/content.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/compat/delayed-promise.d.ts +23 -0
- package/dist/stream/aisdk/v5/compat/delayed-promise.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/compat/index.d.ts +8 -0
- package/dist/stream/aisdk/v5/compat/index.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/compat/media.d.ts +91 -0
- package/dist/stream/aisdk/v5/compat/media.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/compat/prepare-tools.d.ts +11 -0
- package/dist/stream/aisdk/v5/compat/prepare-tools.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/compat/ui-message.d.ts +20 -0
- package/dist/stream/aisdk/v5/compat/ui-message.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/compat/validation.d.ts +17 -0
- package/dist/stream/aisdk/v5/compat/validation.d.ts.map +1 -0
- package/dist/stream/aisdk/v5/output.d.ts +1 -1
- package/dist/stream/base/output.d.ts +1 -1
- package/dist/stream/index.cjs +3 -3
- package/dist/stream/index.js +1 -1
- package/dist/test-utils/llm-mock.cjs +2 -2
- package/dist/test-utils/llm-mock.js +1 -1
- package/dist/tools/index.cjs +4 -4
- package/dist/tools/index.js +1 -1
- package/dist/tools/is-vercel-tool.cjs +2 -2
- package/dist/tools/is-vercel-tool.js +1 -1
- package/dist/tools/validation.d.ts.map +1 -1
- package/dist/utils.cjs +20 -16
- package/dist/utils.d.ts +9 -0
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +1 -1
- package/dist/workflows/evented/index.cjs +10 -10
- package/dist/workflows/evented/index.js +1 -1
- package/dist/workflows/index.cjs +10 -10
- package/dist/workflows/index.js +1 -1
- package/dist/workflows/legacy/index.cjs +22 -22
- package/dist/workflows/legacy/index.js +1 -1
- package/package.json +3 -3
- package/dist/chunk-6VROHRAR.cjs.map +0 -1
- package/dist/chunk-6Z7D7CA3.cjs.map +0 -1
- package/dist/chunk-BRNBKCHE.js.map +0 -1
- package/dist/chunk-C5C4PN54.js.map +0 -1
- package/dist/chunk-E4XQMNEI.cjs +0 -77
- package/dist/chunk-E4XQMNEI.cjs.map +0 -1
- package/dist/chunk-FGCA6CCM.js.map +0 -1
- package/dist/chunk-FLXWZUIG.js.map +0 -1
- package/dist/chunk-IVGAHFAJ.js +0 -72
- package/dist/chunk-IVGAHFAJ.js.map +0 -1
- package/dist/chunk-QA2TWVUS.cjs.map +0 -1
- package/dist/chunk-VBAWR62U.cjs.map +0 -1
- package/dist/stream/aisdk/v5/compat.d.ts +0 -182
- package/dist/stream/aisdk/v5/compat.d.ts.map +0 -1
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var chunk24TFSB6Z_cjs = require('./chunk-24TFSB6Z.cjs');
|
|
3
4
|
var chunkC73WLCY3_cjs = require('./chunk-C73WLCY3.cjs');
|
|
4
5
|
var crypto = require('crypto');
|
|
5
6
|
var AIV4 = require('ai');
|
|
6
7
|
var AIV5 = require('ai-v5');
|
|
7
8
|
var providerUtils = require('@ai-sdk/provider-utils');
|
|
9
|
+
var providerUtilsV5 = require('@ai-sdk/provider-utils-v5');
|
|
8
10
|
var zod = require('zod');
|
|
9
11
|
|
|
10
12
|
function _interopNamespace(e) {
|
|
@@ -60,6 +62,178 @@ var DefaultGeneratedFileWithType = class extends DefaultGeneratedFile {
|
|
|
60
62
|
}
|
|
61
63
|
};
|
|
62
64
|
|
|
65
|
+
// src/stream/aisdk/v5/compat/content.ts
|
|
66
|
+
function splitDataUrl(dataUrl) {
|
|
67
|
+
try {
|
|
68
|
+
const [header, base64Content] = dataUrl.split(",");
|
|
69
|
+
return {
|
|
70
|
+
mediaType: header?.split(";")[0]?.split(":")[1],
|
|
71
|
+
base64Content
|
|
72
|
+
};
|
|
73
|
+
} catch {
|
|
74
|
+
return {
|
|
75
|
+
mediaType: void 0,
|
|
76
|
+
base64Content: void 0
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
function convertToDataContent(content) {
|
|
81
|
+
if (content instanceof Uint8Array) {
|
|
82
|
+
return { data: content, mediaType: void 0 };
|
|
83
|
+
}
|
|
84
|
+
if (content instanceof ArrayBuffer) {
|
|
85
|
+
return { data: new Uint8Array(content), mediaType: void 0 };
|
|
86
|
+
}
|
|
87
|
+
if (typeof content === "string") {
|
|
88
|
+
try {
|
|
89
|
+
content = new URL(content);
|
|
90
|
+
} catch {
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (content instanceof URL && content.protocol === "data:") {
|
|
94
|
+
const { mediaType: dataUrlMediaType, base64Content } = splitDataUrl(content.toString());
|
|
95
|
+
if (dataUrlMediaType == null || base64Content == null) {
|
|
96
|
+
throw new chunkC73WLCY3_cjs.MastraError({
|
|
97
|
+
id: "INVALID_DATA_URL_FORMAT",
|
|
98
|
+
text: `Invalid data URL format in content ${content.toString()}`,
|
|
99
|
+
domain: "LLM" /* LLM */,
|
|
100
|
+
category: "USER" /* USER */
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
return { data: base64Content, mediaType: dataUrlMediaType };
|
|
104
|
+
}
|
|
105
|
+
return { data: content, mediaType: void 0 };
|
|
106
|
+
}
|
|
107
|
+
var imageMediaTypeSignatures = [
|
|
108
|
+
{
|
|
109
|
+
mediaType: "image/gif",
|
|
110
|
+
bytesPrefix: [71, 73, 70],
|
|
111
|
+
base64Prefix: "R0lG"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
mediaType: "image/png",
|
|
115
|
+
bytesPrefix: [137, 80, 78, 71],
|
|
116
|
+
base64Prefix: "iVBORw"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
mediaType: "image/jpeg",
|
|
120
|
+
bytesPrefix: [255, 216],
|
|
121
|
+
base64Prefix: "/9j/"
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
mediaType: "image/webp",
|
|
125
|
+
bytesPrefix: [82, 73, 70, 70],
|
|
126
|
+
base64Prefix: "UklGRg"
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
mediaType: "image/bmp",
|
|
130
|
+
bytesPrefix: [66, 77],
|
|
131
|
+
base64Prefix: "Qk"
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
mediaType: "image/tiff",
|
|
135
|
+
bytesPrefix: [73, 73, 42, 0],
|
|
136
|
+
base64Prefix: "SUkqAA"
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
mediaType: "image/tiff",
|
|
140
|
+
bytesPrefix: [77, 77, 0, 42],
|
|
141
|
+
base64Prefix: "TU0AKg"
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
mediaType: "image/avif",
|
|
145
|
+
bytesPrefix: [0, 0, 0, 32, 102, 116, 121, 112, 97, 118, 105, 102],
|
|
146
|
+
base64Prefix: "AAAAIGZ0eXBhdmlm"
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
mediaType: "image/heic",
|
|
150
|
+
bytesPrefix: [0, 0, 0, 32, 102, 116, 121, 112, 104, 101, 105, 99],
|
|
151
|
+
base64Prefix: "AAAAIGZ0eXBoZWlj"
|
|
152
|
+
}
|
|
153
|
+
];
|
|
154
|
+
var stripID3 = (data) => {
|
|
155
|
+
const bytes = typeof data === "string" ? providerUtilsV5.convertBase64ToUint8Array(data) : data;
|
|
156
|
+
const id3Size = (
|
|
157
|
+
// @ts-ignore
|
|
158
|
+
(bytes[6] & 127) << 21 | // @ts-ignore
|
|
159
|
+
(bytes[7] & 127) << 14 | // @ts-ignore
|
|
160
|
+
(bytes[8] & 127) << 7 | // @ts-ignore
|
|
161
|
+
bytes[9] & 127
|
|
162
|
+
);
|
|
163
|
+
return bytes.slice(id3Size + 10);
|
|
164
|
+
};
|
|
165
|
+
function stripID3TagsIfPresent(data) {
|
|
166
|
+
const hasId3 = typeof data === "string" && data.startsWith("SUQz") || typeof data !== "string" && data.length > 10 && data[0] === 73 && // 'I'
|
|
167
|
+
data[1] === 68 && // 'D'
|
|
168
|
+
data[2] === 51;
|
|
169
|
+
return hasId3 ? stripID3(data) : data;
|
|
170
|
+
}
|
|
171
|
+
function detectMediaType({
|
|
172
|
+
data,
|
|
173
|
+
signatures
|
|
174
|
+
}) {
|
|
175
|
+
const processedData = stripID3TagsIfPresent(data);
|
|
176
|
+
for (const signature of signatures) {
|
|
177
|
+
if (typeof processedData === "string" ? processedData.startsWith(signature.base64Prefix) : processedData.length >= signature.bytesPrefix.length && signature.bytesPrefix.every((byte, index) => processedData[index] === byte)) {
|
|
178
|
+
return signature.mediaType;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
return void 0;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
// src/agent/message-list/prompt/convert-file.ts
|
|
185
|
+
function convertImageFilePart(part, downloadedAssets) {
|
|
186
|
+
let originalData;
|
|
187
|
+
const type = part.type;
|
|
188
|
+
switch (type) {
|
|
189
|
+
case "image":
|
|
190
|
+
originalData = part.image;
|
|
191
|
+
break;
|
|
192
|
+
case "file":
|
|
193
|
+
originalData = part.data;
|
|
194
|
+
break;
|
|
195
|
+
default:
|
|
196
|
+
throw new Error(`Unsupported part type: ${type}`);
|
|
197
|
+
}
|
|
198
|
+
const { data: convertedData, mediaType: convertedMediaType } = convertToDataContent(originalData);
|
|
199
|
+
let mediaType = convertedMediaType ?? part.mediaType;
|
|
200
|
+
let data = convertedData;
|
|
201
|
+
if (data instanceof URL) {
|
|
202
|
+
const downloadedFile = downloadedAssets[data.toString()];
|
|
203
|
+
if (downloadedFile) {
|
|
204
|
+
data = downloadedFile.data;
|
|
205
|
+
mediaType ??= downloadedFile.mediaType;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
switch (type) {
|
|
209
|
+
case "image": {
|
|
210
|
+
if (data instanceof Uint8Array || typeof data === "string") {
|
|
211
|
+
mediaType = detectMediaType({ data, signatures: imageMediaTypeSignatures }) ?? mediaType;
|
|
212
|
+
}
|
|
213
|
+
return {
|
|
214
|
+
type: "file",
|
|
215
|
+
mediaType: mediaType ?? "image/*",
|
|
216
|
+
// any image
|
|
217
|
+
filename: void 0,
|
|
218
|
+
data,
|
|
219
|
+
providerOptions: part.providerOptions
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
case "file": {
|
|
223
|
+
if (mediaType == null) {
|
|
224
|
+
throw new Error(`Media type is missing for file part`);
|
|
225
|
+
}
|
|
226
|
+
return {
|
|
227
|
+
type: "file",
|
|
228
|
+
mediaType,
|
|
229
|
+
filename: part.filename,
|
|
230
|
+
data,
|
|
231
|
+
providerOptions: part.providerOptions
|
|
232
|
+
};
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
|
|
63
237
|
// src/agent/message-list/prompt/attachments-to-parts.ts
|
|
64
238
|
function attachmentsToParts(attachments) {
|
|
65
239
|
const parts = [];
|
|
@@ -437,6 +611,79 @@ function convertDataContentToBase64String(content) {
|
|
|
437
611
|
}
|
|
438
612
|
return providerUtils.convertUint8ArrayToBase64(content);
|
|
439
613
|
}
|
|
614
|
+
var downloadFromUrl = async ({ url, downloadRetries }) => {
|
|
615
|
+
const urlText = url.toString();
|
|
616
|
+
try {
|
|
617
|
+
const response = await chunk24TFSB6Z_cjs.fetchWithRetry(
|
|
618
|
+
urlText,
|
|
619
|
+
{
|
|
620
|
+
method: "GET"
|
|
621
|
+
},
|
|
622
|
+
downloadRetries
|
|
623
|
+
);
|
|
624
|
+
if (!response.ok) {
|
|
625
|
+
throw new chunkC73WLCY3_cjs.MastraError({
|
|
626
|
+
id: "DOWNLOAD_ASSETS_FAILED",
|
|
627
|
+
text: "Failed to download asset",
|
|
628
|
+
domain: "LLM" /* LLM */,
|
|
629
|
+
category: "USER" /* USER */
|
|
630
|
+
});
|
|
631
|
+
}
|
|
632
|
+
return {
|
|
633
|
+
data: new Uint8Array(await response.arrayBuffer()),
|
|
634
|
+
mediaType: response.headers.get("content-type") ?? void 0
|
|
635
|
+
};
|
|
636
|
+
} catch (error) {
|
|
637
|
+
throw new chunkC73WLCY3_cjs.MastraError(
|
|
638
|
+
{
|
|
639
|
+
id: "DOWNLOAD_ASSETS_FAILED",
|
|
640
|
+
text: "Failed to download asset",
|
|
641
|
+
domain: "LLM" /* LLM */,
|
|
642
|
+
category: "USER" /* USER */
|
|
643
|
+
},
|
|
644
|
+
error
|
|
645
|
+
);
|
|
646
|
+
}
|
|
647
|
+
};
|
|
648
|
+
async function downloadAssetsFromMessages({
|
|
649
|
+
messages,
|
|
650
|
+
downloadConcurrency = 10,
|
|
651
|
+
downloadRetries = 3,
|
|
652
|
+
supportedUrls
|
|
653
|
+
}) {
|
|
654
|
+
const pMap = (await import('p-map')).default;
|
|
655
|
+
const filesToDownload = messages.filter((message) => message.role === "user").map((message) => message.content).filter((content) => Array.isArray(content)).flat().filter((part) => part.type === "image" || part.type === "file").map((part) => {
|
|
656
|
+
const mediaType = part.mediaType ?? (part.type === "image" ? "image/*" : void 0);
|
|
657
|
+
let data = part.type === "image" ? part.image : part.data;
|
|
658
|
+
if (typeof data === "string") {
|
|
659
|
+
try {
|
|
660
|
+
data = new URL(data);
|
|
661
|
+
} catch {
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
return { mediaType, data };
|
|
665
|
+
}).filter((part) => part.data instanceof URL).map((part) => ({
|
|
666
|
+
url: part.data,
|
|
667
|
+
isUrlSupportedByModel: part.mediaType != null && providerUtilsV5.isUrlSupported({
|
|
668
|
+
url: part.data.toString(),
|
|
669
|
+
mediaType: part.mediaType,
|
|
670
|
+
supportedUrls: supportedUrls ?? {}
|
|
671
|
+
})
|
|
672
|
+
}));
|
|
673
|
+
const downloadedFiles = await pMap(
|
|
674
|
+
filesToDownload,
|
|
675
|
+
async (fileItem) => {
|
|
676
|
+
return downloadFromUrl({ url: fileItem.url, downloadRetries });
|
|
677
|
+
},
|
|
678
|
+
{
|
|
679
|
+
concurrency: downloadConcurrency
|
|
680
|
+
}
|
|
681
|
+
);
|
|
682
|
+
const downloadFileList = downloadedFiles.filter(
|
|
683
|
+
(downloadedFile) => downloadedFile?.data != null
|
|
684
|
+
).map(({ data, mediaType }, index) => [filesToDownload?.[index]?.url.toString(), { data, mediaType }]);
|
|
685
|
+
return Object.fromEntries(downloadFileList);
|
|
686
|
+
}
|
|
440
687
|
|
|
441
688
|
// src/agent/message-list/utils/ai-v5/tool.ts
|
|
442
689
|
function getToolName(type) {
|
|
@@ -570,13 +817,47 @@ var MessageList = class _MessageList {
|
|
|
570
817
|
return messages;
|
|
571
818
|
},
|
|
572
819
|
// Used for creating LLM prompt messages without AI SDK streamText/generateText
|
|
573
|
-
llmPrompt: (
|
|
820
|
+
llmPrompt: async (options = {
|
|
821
|
+
downloadConcurrency: 10,
|
|
822
|
+
downloadRetries: 3
|
|
823
|
+
}) => {
|
|
574
824
|
const modelMessages = this.all.aiV5.model();
|
|
575
825
|
const systemMessages = this.aiV4CoreMessagesToAIV5ModelMessages(
|
|
576
826
|
[...this.systemMessages, ...Object.values(this.taggedSystemMessages).flat()],
|
|
577
827
|
`system`
|
|
578
828
|
);
|
|
579
|
-
const
|
|
829
|
+
const downloadedAssets = await downloadAssetsFromMessages({
|
|
830
|
+
messages: modelMessages,
|
|
831
|
+
downloadConcurrency: options?.downloadConcurrency,
|
|
832
|
+
downloadRetries: options?.downloadRetries,
|
|
833
|
+
supportedUrls: options?.supportedUrls
|
|
834
|
+
});
|
|
835
|
+
let messages = [...systemMessages, ...modelMessages];
|
|
836
|
+
if (Object.keys(downloadedAssets || {}).length > 0) {
|
|
837
|
+
messages = messages.map((message) => {
|
|
838
|
+
if (message.role === "user") {
|
|
839
|
+
if (typeof message.content === "string") {
|
|
840
|
+
return {
|
|
841
|
+
role: "user",
|
|
842
|
+
content: [{ type: "text", text: message.content }],
|
|
843
|
+
providerOptions: message.providerOptions
|
|
844
|
+
};
|
|
845
|
+
}
|
|
846
|
+
const convertedContent = message.content.map((part) => {
|
|
847
|
+
if (part.type === "image" || part.type === "file") {
|
|
848
|
+
return convertImageFilePart(part, downloadedAssets);
|
|
849
|
+
}
|
|
850
|
+
return part;
|
|
851
|
+
}).filter((part) => part.type !== "text" || part.text !== "");
|
|
852
|
+
return {
|
|
853
|
+
role: "user",
|
|
854
|
+
content: convertedContent,
|
|
855
|
+
providerOptions: message.providerOptions
|
|
856
|
+
};
|
|
857
|
+
}
|
|
858
|
+
return message;
|
|
859
|
+
});
|
|
860
|
+
}
|
|
580
861
|
const needsDefaultUserMessage = !messages.length || messages[0]?.role === "assistant";
|
|
581
862
|
if (needsDefaultUserMessage) {
|
|
582
863
|
const defaultMessage = {
|
|
@@ -2014,7 +2295,9 @@ var MessageList = class _MessageList {
|
|
|
2014
2295
|
return v3Msg;
|
|
2015
2296
|
}
|
|
2016
2297
|
aiV5UIMessagesToAIV5ModelMessages(messages) {
|
|
2017
|
-
|
|
2298
|
+
const preprocessed = this.addStartStepPartsForAIV5(this.sanitizeV5UIMessages(messages));
|
|
2299
|
+
const result = AIV5__namespace.convertToModelMessages(preprocessed);
|
|
2300
|
+
return result;
|
|
2018
2301
|
}
|
|
2019
2302
|
addStartStepPartsForAIV5(messages) {
|
|
2020
2303
|
for (const message of messages) {
|
|
@@ -2330,5 +2613,5 @@ exports.DefaultGeneratedFile = DefaultGeneratedFile;
|
|
|
2330
2613
|
exports.DefaultGeneratedFileWithType = DefaultGeneratedFileWithType;
|
|
2331
2614
|
exports.MessageList = MessageList;
|
|
2332
2615
|
exports.convertMessages = convertMessages;
|
|
2333
|
-
//# sourceMappingURL=chunk-
|
|
2334
|
-
//# sourceMappingURL=chunk-
|
|
2616
|
+
//# sourceMappingURL=chunk-TWNFR6MQ.cjs.map
|
|
2617
|
+
//# sourceMappingURL=chunk-TWNFR6MQ.cjs.map
|