@dexto/core 1.6.27 → 1.7.1
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/DextoAgent.d.ts +3 -3
- package/dist/agent/DextoAgent.d.ts.map +1 -1
- package/dist/agent/schemas.cjs +5 -5
- package/dist/agent/schemas.d.ts +69 -980
- package/dist/agent/schemas.d.ts.map +1 -1
- package/dist/agent/schemas.js +5 -5
- package/dist/approval/schemas.cjs +6 -6
- package/dist/approval/schemas.d.ts +316 -1292
- package/dist/approval/schemas.d.ts.map +1 -1
- package/dist/approval/schemas.js +6 -6
- package/dist/approval/session-approval-store.cjs +1 -1
- package/dist/approval/session-approval-store.d.ts +12 -30
- package/dist/approval/session-approval-store.d.ts.map +1 -1
- package/dist/approval/session-approval-store.js +1 -1
- package/dist/llm/formatters/vercel.cjs +43 -29
- package/dist/llm/formatters/vercel.d.ts.map +1 -1
- package/dist/llm/formatters/vercel.js +49 -30
- package/dist/llm/providers/local/schemas.d.ts +102 -262
- package/dist/llm/providers/local/schemas.d.ts.map +1 -1
- package/dist/llm/registry/index.d.ts +5 -3
- package/dist/llm/registry/index.d.ts.map +1 -1
- package/dist/llm/registry/models.generated.cjs +967 -201
- package/dist/llm/registry/models.generated.d.ts +317 -27
- package/dist/llm/registry/models.generated.d.ts.map +1 -1
- package/dist/llm/registry/models.generated.js +967 -201
- package/dist/llm/resolver.cjs +0 -1
- package/dist/llm/resolver.d.ts.map +1 -1
- package/dist/llm/resolver.js +0 -1
- package/dist/llm/schemas.d.ts +95 -199
- package/dist/llm/schemas.d.ts.map +1 -1
- package/dist/logger/default-logger-factory.d.ts +28 -256
- package/dist/logger/default-logger-factory.d.ts.map +1 -1
- package/dist/logger/v2/schemas.d.ts +18 -120
- package/dist/logger/v2/schemas.d.ts.map +1 -1
- package/dist/mcp/schemas.cjs +4 -4
- package/dist/mcp/schemas.d.ts +77 -270
- package/dist/mcp/schemas.d.ts.map +1 -1
- package/dist/mcp/schemas.js +4 -4
- package/dist/memory/schemas.d.ts +37 -117
- package/dist/memory/schemas.d.ts.map +1 -1
- package/dist/prompts/schemas.d.ts +46 -190
- package/dist/prompts/schemas.d.ts.map +1 -1
- package/dist/resources/schemas.d.ts +14 -68
- package/dist/resources/schemas.d.ts.map +1 -1
- package/dist/runtime/host-runtime.d.ts +1 -5
- package/dist/runtime/host-runtime.d.ts.map +1 -1
- package/dist/session/history/database.cjs +37 -54
- package/dist/session/history/database.d.ts +3 -18
- package/dist/session/history/database.d.ts.map +1 -1
- package/dist/session/history/database.js +37 -54
- package/dist/session/schemas.d.ts +1 -7
- package/dist/session/schemas.d.ts.map +1 -1
- package/dist/systemPrompt/schemas.cjs +2 -10
- package/dist/systemPrompt/schemas.d.ts +53 -343
- package/dist/systemPrompt/schemas.d.ts.map +1 -1
- package/dist/systemPrompt/schemas.js +2 -10
- package/dist/telemetry/schemas.cjs +1 -1
- package/dist/telemetry/schemas.d.ts +9 -44
- package/dist/telemetry/schemas.d.ts.map +1 -1
- package/dist/telemetry/schemas.js +1 -1
- package/dist/tools/schemas.cjs +1 -1
- package/dist/tools/schemas.d.ts +19 -62
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +1 -1
- package/dist/tools/session-tool-preferences-store.d.ts +3 -9
- package/dist/tools/session-tool-preferences-store.d.ts.map +1 -1
- package/dist/utils/result.cjs +11 -8
- package/dist/utils/result.d.ts +6 -6
- package/dist/utils/result.d.ts.map +1 -1
- package/dist/utils/result.js +12 -9
- package/dist/utils/schema.cjs +6 -2
- package/dist/utils/schema.d.ts +2 -7
- package/dist/utils/schema.d.ts.map +1 -1
- package/dist/utils/schema.js +6 -2
- package/dist/utils/zod-schema-converter.cjs +66 -66
- package/dist/utils/zod-schema-converter.d.ts +3 -2
- package/dist/utils/zod-schema-converter.d.ts.map +1 -1
- package/dist/utils/zod-schema-converter.js +66 -66
- package/package.json +4 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/approval/schemas.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAMpE;;GAEG;AACH,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/approval/schemas.ts"],"names":[],"mappings":"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"}
|
package/dist/approval/schemas.js
CHANGED
|
@@ -3,7 +3,7 @@ import { z } from "zod";
|
|
|
3
3
|
import { APPROVAL_TYPES, APPROVAL_STATUSES, DENIAL_REASONS, ApprovalType } from "./types.js";
|
|
4
4
|
import { isValidDisplayData } from "../tools/display-types.js";
|
|
5
5
|
import { HostRuntimeContextSchema } from "../runtime/index.js";
|
|
6
|
-
const JsonSchema7Schema = z.record(z.unknown());
|
|
6
|
+
const JsonSchema7Schema = z.record(z.string(), z.unknown());
|
|
7
7
|
const ApprovalTypeSchema = z.enum(APPROVAL_TYPES);
|
|
8
8
|
const ApprovalStatusSchema = z.enum(APPROVAL_STATUSES);
|
|
9
9
|
const DenialReasonSchema = z.enum(DENIAL_REASONS);
|
|
@@ -28,7 +28,7 @@ const ToolApprovalMetadataSchema = z.object({
|
|
|
28
28
|
"Optional UI-agnostic presentation snapshot for the tool call. Clients MUST ignore unknown fields."
|
|
29
29
|
),
|
|
30
30
|
toolCallId: z.string().describe("Unique tool call ID for tracking parallel tool calls"),
|
|
31
|
-
args: z.record(z.unknown()).describe("Arguments for the tool"),
|
|
31
|
+
args: z.record(z.string(), z.unknown()).describe("Arguments for the tool"),
|
|
32
32
|
description: z.string().optional().describe("Description of the tool"),
|
|
33
33
|
displayPreview: ToolDisplayDataSchema.optional().describe(
|
|
34
34
|
"Preview display data for approval UI (e.g., diff preview)"
|
|
@@ -49,9 +49,9 @@ const ElicitationMetadataSchema = z.object({
|
|
|
49
49
|
schema: JsonSchema7Schema.describe("JSON Schema for the form"),
|
|
50
50
|
prompt: z.string().describe("High-level prompt/context for the form (clients may show it)"),
|
|
51
51
|
serverName: z.string().describe("MCP server requesting input"),
|
|
52
|
-
context: z.record(z.unknown()).optional().describe("Additional context")
|
|
52
|
+
context: z.record(z.string(), z.unknown()).optional().describe("Additional context")
|
|
53
53
|
}).strict().describe("Elicitation metadata");
|
|
54
|
-
const CustomApprovalMetadataSchema = z.record(z.unknown()).describe("Custom metadata");
|
|
54
|
+
const CustomApprovalMetadataSchema = z.record(z.string(), z.unknown()).describe("Custom metadata");
|
|
55
55
|
const BaseApprovalRequestSchema = z.object({
|
|
56
56
|
approvalId: z.string().uuid().describe("Unique approval identifier"),
|
|
57
57
|
type: ApprovalTypeSchema.describe("Type of approval"),
|
|
@@ -103,9 +103,9 @@ const CommandConfirmationResponseDataSchema = z.object({
|
|
|
103
103
|
// Could add command pattern remembering in future (e.g., "remember git push *")
|
|
104
104
|
}).strict().describe("Command confirmation response data");
|
|
105
105
|
const ElicitationResponseDataSchema = z.object({
|
|
106
|
-
formData: z.record(z.unknown()).describe("Form data matching schema")
|
|
106
|
+
formData: z.record(z.string(), z.unknown()).describe("Form data matching schema")
|
|
107
107
|
}).strict().describe("Elicitation response data");
|
|
108
|
-
const CustomApprovalResponseDataSchema = z.record(z.unknown()).describe("Custom response data");
|
|
108
|
+
const CustomApprovalResponseDataSchema = z.record(z.string(), z.unknown()).describe("Custom response data");
|
|
109
109
|
const DirectoryAccessResponseDataSchema = z.object({
|
|
110
110
|
rememberDirectory: z.boolean().optional().describe("Remember this directory for the session (allows all file access within it)")
|
|
111
111
|
}).strict().describe("Directory access response data");
|
|
@@ -28,7 +28,7 @@ const PersistedApprovedDirectorySchema = import_zod.z.object({
|
|
|
28
28
|
type: ApprovedDirectoryTypeSchema
|
|
29
29
|
}).strict();
|
|
30
30
|
const SessionApprovalStateSchema = import_zod.z.object({
|
|
31
|
-
toolPatterns: import_zod.z.record(import_zod.z.array(import_zod.z.string())).default({}),
|
|
31
|
+
toolPatterns: import_zod.z.record(import_zod.z.string(), import_zod.z.array(import_zod.z.string())).default({}),
|
|
32
32
|
approvedDirectories: import_zod.z.array(PersistedApprovedDirectorySchema).default([])
|
|
33
33
|
}).strict();
|
|
34
34
|
const DEFAULT_APPROVAL_STATE = {
|
|
@@ -3,39 +3,21 @@ import type { StorageManager } from '../storage/index.js';
|
|
|
3
3
|
import type { Logger } from '../logger/v2/types.js';
|
|
4
4
|
declare const PersistedApprovedDirectorySchema: z.ZodObject<{
|
|
5
5
|
path: z.ZodString;
|
|
6
|
-
type: z.ZodEnum<
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
},
|
|
11
|
-
path: string;
|
|
12
|
-
type: "session" | "once";
|
|
13
|
-
}>;
|
|
6
|
+
type: z.ZodEnum<{
|
|
7
|
+
session: "session";
|
|
8
|
+
once: "once";
|
|
9
|
+
}>;
|
|
10
|
+
}, z.core.$strict>;
|
|
14
11
|
declare const SessionApprovalStateSchema: z.ZodObject<{
|
|
15
|
-
toolPatterns: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString
|
|
12
|
+
toolPatterns: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
|
|
16
13
|
approvedDirectories: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
17
14
|
path: z.ZodString;
|
|
18
|
-
type: z.ZodEnum<
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
},
|
|
23
|
-
|
|
24
|
-
type: "session" | "once";
|
|
25
|
-
}>, "many">>;
|
|
26
|
-
}, "strict", z.ZodTypeAny, {
|
|
27
|
-
toolPatterns: Record<string, string[]>;
|
|
28
|
-
approvedDirectories: {
|
|
29
|
-
path: string;
|
|
30
|
-
type: "session" | "once";
|
|
31
|
-
}[];
|
|
32
|
-
}, {
|
|
33
|
-
toolPatterns?: Record<string, string[]> | undefined;
|
|
34
|
-
approvedDirectories?: {
|
|
35
|
-
path: string;
|
|
36
|
-
type: "session" | "once";
|
|
37
|
-
}[] | undefined;
|
|
38
|
-
}>;
|
|
15
|
+
type: z.ZodEnum<{
|
|
16
|
+
session: "session";
|
|
17
|
+
once: "once";
|
|
18
|
+
}>;
|
|
19
|
+
}, z.core.$strict>>>;
|
|
20
|
+
}, z.core.$strict>;
|
|
39
21
|
export type PersistedApprovedDirectory = z.output<typeof PersistedApprovedDirectorySchema>;
|
|
40
22
|
export type SessionApprovalState = z.output<typeof SessionApprovalStateSchema>;
|
|
41
23
|
export declare class SessionApprovalStore {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-approval-store.d.ts","sourceRoot":"","sources":["../../src/approval/session-approval-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAIpD,QAAA,MAAM,gCAAgC
|
|
1
|
+
{"version":3,"file":"session-approval-store.d.ts","sourceRoot":"","sources":["../../src/approval/session-approval-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAIpD,QAAA,MAAM,gCAAgC;;;;;;kBAKzB,CAAC;AAEd,QAAA,MAAM,0BAA0B;;;;;;;;;kBAKnB,CAAC;AAEd,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAC3F,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAO/E,qBAAa,oBAAoB;IAIzB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJ3B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;gBAGpB,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,MAAM,EAC/B,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO;IAMzC,OAAO,CAAC,QAAQ;IAIV,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAiBvD,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/E,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/C,OAAO,CAAC,UAAU;CAYrB"}
|
|
@@ -6,7 +6,7 @@ const PersistedApprovedDirectorySchema = z.object({
|
|
|
6
6
|
type: ApprovedDirectoryTypeSchema
|
|
7
7
|
}).strict();
|
|
8
8
|
const SessionApprovalStateSchema = z.object({
|
|
9
|
-
toolPatterns: z.record(z.array(z.string())).default({}),
|
|
9
|
+
toolPatterns: z.record(z.string(), z.array(z.string())).default({}),
|
|
10
10
|
approvedDirectories: z.array(PersistedApprovedDirectorySchema).default([])
|
|
11
11
|
}).strict();
|
|
12
12
|
const DEFAULT_APPROVAL_STATE = {
|
|
@@ -33,6 +33,14 @@ function toUrlIfString(value) {
|
|
|
33
33
|
}
|
|
34
34
|
return value;
|
|
35
35
|
}
|
|
36
|
+
function normalizeToolMediaData(data) {
|
|
37
|
+
const dataUri = (0, import_utils.parseDataUri)(data);
|
|
38
|
+
if (dataUri) return dataUri.base64;
|
|
39
|
+
if (/^https?:\/\//i.test(data) || data.startsWith("blob:") || data.startsWith("@blob:")) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
return data;
|
|
43
|
+
}
|
|
36
44
|
class VercelMessageFormatter {
|
|
37
45
|
logger;
|
|
38
46
|
constructor(logger) {
|
|
@@ -252,51 +260,57 @@ class VercelMessageFormatter {
|
|
|
252
260
|
formatToolMessage(msg) {
|
|
253
261
|
let toolResultPart;
|
|
254
262
|
if (Array.isArray(msg.content)) {
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
type: "
|
|
264
|
-
value: [
|
|
265
|
-
{
|
|
266
|
-
type: "media",
|
|
267
|
-
data: imageDataBase64,
|
|
268
|
-
mediaType: imagePart.mimeType || "image/jpeg"
|
|
269
|
-
}
|
|
270
|
-
]
|
|
263
|
+
const content = msg.content.map((part) => {
|
|
264
|
+
if (part.type === "text") {
|
|
265
|
+
return { type: "text", text: part.text };
|
|
266
|
+
}
|
|
267
|
+
if (part.type === "image") {
|
|
268
|
+
const data = (0, import_utils.getImageData)(part, this.logger);
|
|
269
|
+
const mediaData = normalizeToolMediaData(data);
|
|
270
|
+
if (!mediaData) {
|
|
271
|
+
return { type: "text", text: `Attached image: ${data}` };
|
|
271
272
|
}
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
273
|
+
return {
|
|
274
|
+
type: "media",
|
|
275
|
+
data: mediaData,
|
|
276
|
+
mediaType: part.mimeType || "image/jpeg"
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
if (part.type === "file") {
|
|
280
|
+
const data = (0, import_utils.getFileData)(part, this.logger);
|
|
281
|
+
const mediaData = normalizeToolMediaData(data);
|
|
282
|
+
if (!mediaData) {
|
|
283
|
+
return { type: "text", text: `Attached file: ${data}` };
|
|
284
|
+
}
|
|
285
|
+
return {
|
|
286
|
+
type: "media",
|
|
287
|
+
data: mediaData,
|
|
288
|
+
mediaType: part.mimeType
|
|
289
|
+
};
|
|
290
|
+
}
|
|
291
|
+
if (part.type === "resource") {
|
|
292
|
+
return { type: "text", text: `${part.name}: ${part.uri}` };
|
|
293
|
+
}
|
|
294
|
+
return null;
|
|
295
|
+
}).filter((part) => part !== null);
|
|
296
|
+
if (content.some((part) => part.type === "media")) {
|
|
276
297
|
toolResultPart = {
|
|
277
298
|
type: "tool-result",
|
|
278
299
|
toolCallId: msg.toolCallId,
|
|
279
300
|
toolName: msg.name,
|
|
280
301
|
output: {
|
|
281
302
|
type: "content",
|
|
282
|
-
value:
|
|
283
|
-
{
|
|
284
|
-
type: "media",
|
|
285
|
-
data: fileDataBase64,
|
|
286
|
-
mediaType: filePart.mimeType
|
|
287
|
-
}
|
|
288
|
-
]
|
|
303
|
+
value: content
|
|
289
304
|
}
|
|
290
305
|
};
|
|
291
306
|
} else {
|
|
292
|
-
const textContent = Array.isArray(msg.content) ? msg.content.map((part) => part.type === "text" ? part.text : JSON.stringify(part)).join("\n") : String(msg.content);
|
|
293
307
|
toolResultPart = {
|
|
294
308
|
type: "tool-result",
|
|
295
309
|
toolCallId: msg.toolCallId,
|
|
296
310
|
toolName: msg.name,
|
|
297
311
|
output: {
|
|
298
312
|
type: "text",
|
|
299
|
-
value:
|
|
313
|
+
value: content.filter((part) => part.type === "text").map((part) => part.text).join("\n") || "[empty result]"
|
|
300
314
|
}
|
|
301
315
|
};
|
|
302
316
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vercel.d.ts","sourceRoot":"","sources":["../../../src/llm/formatters/vercel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAiD,MAAM,IAAI,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAiC,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"vercel.d.ts","sourceRoot":"","sources":["../../../src/llm/formatters/vercel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAiD,MAAM,IAAI,CAAC;AACtF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,KAAK,EAAE,eAAe,EAAiC,MAAM,wBAAwB,CAAC;AAO7F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AA8BvD;;;;;;;;;;GAUG;AACH,qBAAa,sBAAsB;IAC/B,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;IAG1B;;;;;;OAMG;IACH,MAAM,CACF,OAAO,EAAE,QAAQ,CAAC,eAAe,EAAE,CAAC,EACpC,OAAO,EAAE,UAAU,EACnB,YAAY,EAAE,MAAM,GAAG,IAAI,GAC5B,YAAY,EAAE;IAkKjB;;;;;;OAMG;IACH,kBAAkB,IAAI,IAAI;IAI1B,OAAO,CAAC,wBAAwB;IAUhC,OAAO,CAAC,sBAAsB;IAmG9B,OAAO,CAAC,iBAAiB;CA6E5B"}
|
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import "../../chunk-PTJYTZNU.js";
|
|
2
|
-
import {
|
|
2
|
+
import {
|
|
3
|
+
getImageData,
|
|
4
|
+
getFileData,
|
|
5
|
+
filterMessagesByLLMCapabilities,
|
|
6
|
+
parseDataUri
|
|
7
|
+
} from "../../context/utils.js";
|
|
3
8
|
import { DextoLogComponent } from "../../logger/v2/types.js";
|
|
4
9
|
function toUrlIfString(value) {
|
|
5
10
|
if (typeof value === "string" && /^https?:\/\//i.test(value)) {
|
|
@@ -11,6 +16,14 @@ function toUrlIfString(value) {
|
|
|
11
16
|
}
|
|
12
17
|
return value;
|
|
13
18
|
}
|
|
19
|
+
function normalizeToolMediaData(data) {
|
|
20
|
+
const dataUri = parseDataUri(data);
|
|
21
|
+
if (dataUri) return dataUri.base64;
|
|
22
|
+
if (/^https?:\/\//i.test(data) || data.startsWith("blob:") || data.startsWith("@blob:")) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
return data;
|
|
26
|
+
}
|
|
14
27
|
class VercelMessageFormatter {
|
|
15
28
|
logger;
|
|
16
29
|
constructor(logger) {
|
|
@@ -230,51 +243,57 @@ class VercelMessageFormatter {
|
|
|
230
243
|
formatToolMessage(msg) {
|
|
231
244
|
let toolResultPart;
|
|
232
245
|
if (Array.isArray(msg.content)) {
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
type: "
|
|
242
|
-
value: [
|
|
243
|
-
{
|
|
244
|
-
type: "media",
|
|
245
|
-
data: imageDataBase64,
|
|
246
|
-
mediaType: imagePart.mimeType || "image/jpeg"
|
|
247
|
-
}
|
|
248
|
-
]
|
|
246
|
+
const content = msg.content.map((part) => {
|
|
247
|
+
if (part.type === "text") {
|
|
248
|
+
return { type: "text", text: part.text };
|
|
249
|
+
}
|
|
250
|
+
if (part.type === "image") {
|
|
251
|
+
const data = getImageData(part, this.logger);
|
|
252
|
+
const mediaData = normalizeToolMediaData(data);
|
|
253
|
+
if (!mediaData) {
|
|
254
|
+
return { type: "text", text: `Attached image: ${data}` };
|
|
249
255
|
}
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
256
|
+
return {
|
|
257
|
+
type: "media",
|
|
258
|
+
data: mediaData,
|
|
259
|
+
mediaType: part.mimeType || "image/jpeg"
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
if (part.type === "file") {
|
|
263
|
+
const data = getFileData(part, this.logger);
|
|
264
|
+
const mediaData = normalizeToolMediaData(data);
|
|
265
|
+
if (!mediaData) {
|
|
266
|
+
return { type: "text", text: `Attached file: ${data}` };
|
|
267
|
+
}
|
|
268
|
+
return {
|
|
269
|
+
type: "media",
|
|
270
|
+
data: mediaData,
|
|
271
|
+
mediaType: part.mimeType
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
if (part.type === "resource") {
|
|
275
|
+
return { type: "text", text: `${part.name}: ${part.uri}` };
|
|
276
|
+
}
|
|
277
|
+
return null;
|
|
278
|
+
}).filter((part) => part !== null);
|
|
279
|
+
if (content.some((part) => part.type === "media")) {
|
|
254
280
|
toolResultPart = {
|
|
255
281
|
type: "tool-result",
|
|
256
282
|
toolCallId: msg.toolCallId,
|
|
257
283
|
toolName: msg.name,
|
|
258
284
|
output: {
|
|
259
285
|
type: "content",
|
|
260
|
-
value:
|
|
261
|
-
{
|
|
262
|
-
type: "media",
|
|
263
|
-
data: fileDataBase64,
|
|
264
|
-
mediaType: filePart.mimeType
|
|
265
|
-
}
|
|
266
|
-
]
|
|
286
|
+
value: content
|
|
267
287
|
}
|
|
268
288
|
};
|
|
269
289
|
} else {
|
|
270
|
-
const textContent = Array.isArray(msg.content) ? msg.content.map((part) => part.type === "text" ? part.text : JSON.stringify(part)).join("\n") : String(msg.content);
|
|
271
290
|
toolResultPart = {
|
|
272
291
|
type: "tool-result",
|
|
273
292
|
toolCallId: msg.toolCallId,
|
|
274
293
|
toolName: msg.name,
|
|
275
294
|
output: {
|
|
276
295
|
type: "text",
|
|
277
|
-
value:
|
|
296
|
+
value: content.filter((part) => part.type === "text").map((part) => part.text).join("\n") || "[empty result]"
|
|
278
297
|
}
|
|
279
298
|
};
|
|
280
299
|
}
|