@convex-dev/agent 0.2.0-alpha.2 → 0.2.0
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/client/createTool.d.ts +3 -5
- package/dist/client/createTool.d.ts.map +1 -1
- package/dist/client/createTool.js +0 -1
- package/dist/client/createTool.js.map +1 -1
- package/dist/client/definePlaygroundAPI.d.ts +28 -28
- package/dist/client/files.d.ts +8 -1
- package/dist/client/files.d.ts.map +1 -1
- package/dist/client/files.js +60 -5
- package/dist/client/files.js.map +1 -1
- package/dist/client/index.d.ts +223 -239
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +368 -382
- package/dist/client/index.js.map +1 -1
- package/dist/client/messages.d.ts +91 -373
- package/dist/client/messages.d.ts.map +1 -1
- package/dist/client/messages.js +7 -1
- package/dist/client/messages.js.map +1 -1
- package/dist/client/search.d.ts +15 -15
- package/dist/client/search.d.ts.map +1 -1
- package/dist/client/search.js +3 -3
- package/dist/client/search.js.map +1 -1
- package/dist/client/streaming.d.ts +21 -22
- package/dist/client/streaming.d.ts.map +1 -1
- package/dist/client/streaming.js +35 -40
- package/dist/client/streaming.js.map +1 -1
- package/dist/client/types.d.ts +148 -61
- package/dist/client/types.d.ts.map +1 -1
- package/dist/component/_generated/api.d.ts +47 -357
- package/dist/component/messages.d.ts +157 -150
- package/dist/component/messages.d.ts.map +1 -1
- package/dist/component/messages.js +124 -70
- package/dist/component/messages.js.map +1 -1
- package/dist/component/schema.d.ts +1147 -2687
- package/dist/component/schema.d.ts.map +1 -1
- package/dist/component/schema.js +5 -4
- package/dist/component/schema.js.map +1 -1
- package/dist/component/streams.d.ts +29 -323
- package/dist/component/streams.d.ts.map +1 -1
- package/dist/component/streams.js +104 -60
- package/dist/component/streams.js.map +1 -1
- package/dist/component/threads.d.ts +4 -4
- package/dist/component/users.d.ts +3 -3
- package/dist/mapping.d.ts +4 -1
- package/dist/mapping.d.ts.map +1 -1
- package/dist/mapping.js +17 -1
- package/dist/mapping.js.map +1 -1
- package/dist/parts.d.ts +3 -0
- package/dist/parts.d.ts.map +1 -0
- package/dist/parts.js +34 -0
- package/dist/parts.js.map +1 -0
- package/dist/react/SmoothText.d.ts +5 -0
- package/dist/react/SmoothText.d.ts.map +1 -0
- package/dist/react/SmoothText.js +6 -0
- package/dist/react/SmoothText.js.map +1 -0
- package/dist/react/deltas.d.ts +3 -2
- package/dist/react/deltas.d.ts.map +1 -1
- package/dist/react/deltas.js +19 -79
- package/dist/react/deltas.js.map +1 -1
- package/dist/react/index.d.ts +1 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +31 -11
- package/dist/react/index.js.map +1 -1
- package/dist/react/optimisticallySendMessage.d.ts.map +1 -1
- package/dist/react/optimisticallySendMessage.js +2 -8
- package/dist/react/optimisticallySendMessage.js.map +1 -1
- package/dist/react/useSmoothText.d.ts +13 -12
- package/dist/react/useSmoothText.d.ts.map +1 -1
- package/dist/react/useSmoothText.js +1 -1
- package/dist/react/useSmoothText.js.map +1 -1
- package/dist/validators.d.ts +109 -1590
- package/dist/validators.d.ts.map +1 -1
- package/dist/validators.js +4 -81
- package/dist/validators.js.map +1 -1
- package/package.json +3 -3
- package/src/client/createTool.ts +4 -9
- package/src/client/files.ts +88 -10
- package/src/client/index.test.ts +9 -21
- package/src/client/index.ts +664 -650
- package/src/client/messages.ts +16 -2
- package/src/client/search.ts +10 -7
- package/src/client/streaming.ts +53 -57
- package/src/client/types.ts +227 -97
- package/src/component/_generated/api.d.ts +47 -357
- package/src/component/messages.ts +157 -96
- package/src/component/schema.ts +4 -4
- package/src/component/streams.ts +180 -69
- package/src/mapping.ts +23 -2
- package/src/parts.ts +39 -0
- package/src/react/SmoothText.tsx +9 -0
- package/src/react/deltas.test.ts +38 -42
- package/src/react/deltas.ts +24 -86
- package/src/react/index.ts +35 -13
- package/src/react/optimisticallySendMessage.ts +2 -8
- package/src/react/useSmoothText.ts +14 -15
- package/src/validators.test.ts +0 -17
- package/src/validators.ts +8 -101
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import {
|
|
1
|
+
import type { FlexibleSchema } from "@ai-sdk/provider-utils";
|
|
2
|
+
import type { Tool, ToolCallOptions, ToolSet } from "ai";
|
|
3
3
|
import type { Agent } from "./index.js";
|
|
4
4
|
import type { GenericActionCtx, GenericDataModel } from "convex/server";
|
|
5
5
|
import type { ProviderOptions } from "../validators.js";
|
|
@@ -28,7 +28,7 @@ export declare function createTool<INPUT, OUTPUT, Ctx extends ToolCtx = ToolCtx>
|
|
|
28
28
|
It is also used to validate the output of the language model.
|
|
29
29
|
Use descriptions to make the input understandable for the language model.
|
|
30
30
|
*/
|
|
31
|
-
args:
|
|
31
|
+
args: FlexibleSchema<INPUT>;
|
|
32
32
|
/**
|
|
33
33
|
An async function that is called with the arguments from the tool call and produces a result.
|
|
34
34
|
If not provided, the tool will not be executed automatically.
|
|
@@ -63,6 +63,4 @@ export declare function createTool<INPUT, OUTPUT, Ctx extends ToolCtx = ToolCtx>
|
|
|
63
63
|
providerOptions?: ProviderOptions;
|
|
64
64
|
}): Tool<INPUT, OUTPUT>;
|
|
65
65
|
export declare function wrapTools(ctx: ToolCtx, ...toolSets: (ToolSet | undefined)[]): ToolSet;
|
|
66
|
-
type ToolParameters<T> = z.Schema<T> | Schema<T>;
|
|
67
|
-
export {};
|
|
68
66
|
//# sourceMappingURL=createTool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createTool.d.ts","sourceRoot":"","sources":["../../src/client/createTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"createTool.d.ts","sourceRoot":"","sources":["../../src/client/createTool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAEzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAExD,MAAM,MAAM,OAAO,CAAC,SAAS,SAAS,gBAAgB,GAAG,gBAAgB,IACvE,gBAAgB,CAAC,SAAS,CAAC,GAAG;IAC5B,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEJ;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,OAAO,GAAG,OAAO,EAAE,GAAG,EAAE;IAC5E;;;;SAIK;IACL,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;SAIK;IACL,IAAI,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC;IAC5B;;;;;;SAMK;IACL,OAAO,EAAE,CACP,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,KAAK,EACX,OAAO,EAAE,eAAe,KACrB,WAAW,CAAC,MAAM,CAAC,CAAC;IACzB;;OAEG;IACH,GAAG,CAAC,EAAE,GAAG,CAAC;IACV;;;OAGG;IACH,YAAY,CAAC,EAAE,CACb,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,eAAe,KACrB,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9B;;;OAGG;IACH,YAAY,CAAC,EAAE,CACb,GAAG,EAAE,GAAG,EACR,OAAO,EAAE;QAAE,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,eAAe,KAClD,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC9B;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CACjB,GAAG,EAAE,GAAG,EACR,OAAO,EAAE;QACP,KAAK,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,GAAG,KAAK,CAAC;KACpD,GAAG,eAAe,KAChB,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAG9B,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,GAAG,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CA6BtB;AAOD,wBAAgB,SAAS,CACvB,GAAG,EAAE,OAAO,EACZ,GAAG,QAAQ,EAAE,CAAC,OAAO,GAAG,SAAS,CAAC,EAAE,GACnC,OAAO,CAiBT"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createTool.js","sourceRoot":"","sources":["../../src/client/createTool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"createTool.js","sourceRoot":"","sources":["../../src/client/createTool.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAa1B;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CAA+C,GA0DxE;IACC,MAAM,CAAC,GAAG,IAAI,CAAC;QACb,IAAI,EAAE,UAAU;QAChB,YAAY,EAAE,IAAI;QAClB,GAAG,EAAE,GAAG,CAAC,GAAG;QACZ,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,WAAW,EAAE,GAAG,CAAC,IAAI;QACrB,KAAK,CAAC,OAAO,CAAC,IAAW,EAAE,OAAwB;YACjD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClB,MAAM,IAAI,KAAK,CACb,uDAAuD;oBACrD,qEAAqE;oBACrE,uDAAuD,CAC1D,CAAC;YACJ,CAAC;YACD,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;QACD,eAAe,EAAE,GAAG,CAAC,eAAe;KACrC,CAAC,CAAC;IACH,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;QACrB,CAAC,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;QACrB,CAAC,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACzB,CAAC,CAAC,gBAAgB,GAAG,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,8DAA8D;AAC9D,SAAS,MAAM,CAAsB,IAAS;IAC5C,OAAQ,IAAqB,CAAC,GAAG,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,SAAS,CACvB,GAAY,EACZ,GAAG,QAAiC;IAEpC,MAAM,MAAM,GAAG,EAAa,CAAC;IAC7B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,SAAS;QACX,CAAC;QACD,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACnD,8DAA8D;YAC9D,IAAI,CAAE,IAAY,CAAC,YAAY,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,MAAM,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -173,9 +173,9 @@ export declare function definePlaygroundAPI<DataModel extends GenericDataModel>(
|
|
|
173
173
|
title?: string | undefined;
|
|
174
174
|
type?: "source" | undefined;
|
|
175
175
|
providerOptions?: Record<string, Record<string, any>> | undefined;
|
|
176
|
-
url?: string | undefined;
|
|
177
176
|
id: string;
|
|
178
177
|
sourceType: "url";
|
|
178
|
+
url: string;
|
|
179
179
|
} | {
|
|
180
180
|
filename?: string | undefined;
|
|
181
181
|
providerMetadata?: Record<string, Record<string, any>> | undefined;
|
|
@@ -185,6 +185,19 @@ export declare function definePlaygroundAPI<DataModel extends GenericDataModel>(
|
|
|
185
185
|
sourceType: "document";
|
|
186
186
|
mediaType: string;
|
|
187
187
|
})[] | undefined;
|
|
188
|
+
warnings?: ({
|
|
189
|
+
details?: string | undefined;
|
|
190
|
+
type: "unsupported-setting";
|
|
191
|
+
setting: string;
|
|
192
|
+
} | {
|
|
193
|
+
details?: string | undefined;
|
|
194
|
+
type: "unsupported-tool";
|
|
195
|
+
tool: any;
|
|
196
|
+
} | {
|
|
197
|
+
type: "other";
|
|
198
|
+
message: string;
|
|
199
|
+
})[] | undefined;
|
|
200
|
+
finishReason?: "length" | "error" | "other" | "stop" | "content-filter" | "tool-calls" | "unknown" | undefined;
|
|
188
201
|
reasoningDetails?: ({
|
|
189
202
|
providerOptions?: Record<string, Record<string, any>> | undefined;
|
|
190
203
|
signature?: string | undefined;
|
|
@@ -199,19 +212,6 @@ export declare function definePlaygroundAPI<DataModel extends GenericDataModel>(
|
|
|
199
212
|
type: "redacted";
|
|
200
213
|
data: string;
|
|
201
214
|
})[] | undefined;
|
|
202
|
-
warnings?: ({
|
|
203
|
-
details?: string | undefined;
|
|
204
|
-
type: "unsupported-setting";
|
|
205
|
-
setting: string;
|
|
206
|
-
} | {
|
|
207
|
-
details?: string | undefined;
|
|
208
|
-
type: "unsupported-tool";
|
|
209
|
-
tool: any;
|
|
210
|
-
} | {
|
|
211
|
-
type: "other";
|
|
212
|
-
message: string;
|
|
213
|
-
})[] | undefined;
|
|
214
|
-
finishReason?: "length" | "error" | "other" | "stop" | "content-filter" | "tool-calls" | "unknown" | undefined;
|
|
215
215
|
_id: string;
|
|
216
216
|
_creationTime: number;
|
|
217
217
|
status: "pending" | "success" | "failed";
|
|
@@ -543,9 +543,9 @@ export declare function definePlaygroundAPI<DataModel extends GenericDataModel>(
|
|
|
543
543
|
title?: string | undefined;
|
|
544
544
|
type?: "source" | undefined;
|
|
545
545
|
providerOptions?: Record<string, Record<string, any>> | undefined;
|
|
546
|
-
url?: string | undefined;
|
|
547
546
|
id: string;
|
|
548
547
|
sourceType: "url";
|
|
548
|
+
url: string;
|
|
549
549
|
} | {
|
|
550
550
|
filename?: string | undefined;
|
|
551
551
|
providerMetadata?: Record<string, Record<string, any>> | undefined;
|
|
@@ -555,6 +555,19 @@ export declare function definePlaygroundAPI<DataModel extends GenericDataModel>(
|
|
|
555
555
|
sourceType: "document";
|
|
556
556
|
mediaType: string;
|
|
557
557
|
})[] | undefined;
|
|
558
|
+
warnings?: ({
|
|
559
|
+
details?: string | undefined;
|
|
560
|
+
type: "unsupported-setting";
|
|
561
|
+
setting: string;
|
|
562
|
+
} | {
|
|
563
|
+
details?: string | undefined;
|
|
564
|
+
type: "unsupported-tool";
|
|
565
|
+
tool: any;
|
|
566
|
+
} | {
|
|
567
|
+
type: "other";
|
|
568
|
+
message: string;
|
|
569
|
+
})[] | undefined;
|
|
570
|
+
finishReason?: "length" | "error" | "other" | "stop" | "content-filter" | "tool-calls" | "unknown" | undefined;
|
|
558
571
|
reasoningDetails?: ({
|
|
559
572
|
providerOptions?: Record<string, Record<string, any>> | undefined;
|
|
560
573
|
signature?: string | undefined;
|
|
@@ -569,19 +582,6 @@ export declare function definePlaygroundAPI<DataModel extends GenericDataModel>(
|
|
|
569
582
|
type: "redacted";
|
|
570
583
|
data: string;
|
|
571
584
|
})[] | undefined;
|
|
572
|
-
warnings?: ({
|
|
573
|
-
details?: string | undefined;
|
|
574
|
-
type: "unsupported-setting";
|
|
575
|
-
setting: string;
|
|
576
|
-
} | {
|
|
577
|
-
details?: string | undefined;
|
|
578
|
-
type: "unsupported-tool";
|
|
579
|
-
tool: any;
|
|
580
|
-
} | {
|
|
581
|
-
type: "other";
|
|
582
|
-
message: string;
|
|
583
|
-
})[] | undefined;
|
|
584
|
-
finishReason?: "length" | "error" | "other" | "stop" | "content-filter" | "tool-calls" | "unknown" | undefined;
|
|
585
585
|
_id: string;
|
|
586
586
|
_creationTime: number;
|
|
587
587
|
status: "pending" | "success" | "failed";
|
package/dist/client/files.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type { FilePart, ImagePart } from "ai";
|
|
1
|
+
import type { FilePart, ImagePart, ModelMessage } from "ai";
|
|
2
2
|
import type { Id } from "../component/_generated/dataModel.js";
|
|
3
3
|
import type { ActionCtx, AgentComponent, QueryCtx, RunMutationCtx } from "./types.js";
|
|
4
|
+
import type { Message } from "../validators.js";
|
|
4
5
|
export declare const MAX_FILE_SIZE: number;
|
|
5
6
|
type File = {
|
|
6
7
|
url: string;
|
|
@@ -55,5 +56,11 @@ export declare function getFile(ctx: ActionCtx | QueryCtx, component: AgentCompo
|
|
|
55
56
|
filePart: FilePart;
|
|
56
57
|
imagePart: ImagePart | undefined;
|
|
57
58
|
}>;
|
|
59
|
+
/**
|
|
60
|
+
* Process messages to inline file and image URLs that point to localhost
|
|
61
|
+
* by converting them to base64. This solves the problem of LLMs not being
|
|
62
|
+
* able to access localhost URLs.
|
|
63
|
+
*/
|
|
64
|
+
export declare function inlineMessagesFiles(messages: (ModelMessage | Message)[]): Promise<(ModelMessage | Message)[]>;
|
|
58
65
|
export {};
|
|
59
66
|
//# sourceMappingURL=files.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/client/files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../src/client/files.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,QAAQ,EACR,SAAS,EACT,YAAY,EAEb,MAAM,IAAI,CAAC;AACZ,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,sCAAsC,CAAC;AAC/D,OAAO,KAAK,EACV,SAAS,EACT,cAAc,EACd,QAAQ,EACR,cAAc,EACf,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAGhD,eAAO,MAAM,aAAa,QAAY,CAAC;AAEvC,KAAK,IAAI,GAAG;IACV,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,wBAAsB,SAAS,CAC7B,GAAG,EAAE,SAAS,GAAG,cAAc,EAC/B,SAAS,EAAE,cAAc,EACzB,IAAI,EAAE,IAAI,EACV,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAO,GAChE,OAAO,CAAC;IACT,IAAI,EAAE,IAAI,CAAC;IACX,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC;CAClC,CAAC,CAiED;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,OAAO,CAC3B,GAAG,EAAE,SAAS,GAAG,QAAQ,EACzB,SAAS,EAAE,cAAc,EACzB,MAAM,EAAE,MAAM;;;;mBAemB,EAAE,CAAC,UAAU,CAAC;;;;cAWlC,QAAQ;eAAa,SAAS,GAAG,SAAS;GANxD;AA4CD;;;;GAIG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,CAAC,YAAY,GAAG,OAAO,CAAC,EAAE,GACnC,OAAO,CAAC,CAAC,YAAY,GAAG,OAAO,CAAC,EAAE,CAAC,CA2CrC"}
|
package/dist/client/files.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { assert } from "convex-helpers";
|
|
1
2
|
export const MAX_FILE_SIZE = 1024 * 64;
|
|
2
3
|
/**
|
|
3
4
|
* Store a file in the file storage and return the URL and fileId.
|
|
@@ -113,12 +114,66 @@ function getParts(url, mediaType, filename) {
|
|
|
113
114
|
filename,
|
|
114
115
|
};
|
|
115
116
|
const imagePart = mediaType.startsWith("image/")
|
|
116
|
-
? {
|
|
117
|
-
type: "image",
|
|
118
|
-
image: new URL(url),
|
|
119
|
-
mediaType,
|
|
120
|
-
}
|
|
117
|
+
? { type: "image", image: new URL(url), mediaType }
|
|
121
118
|
: undefined;
|
|
122
119
|
return { filePart, imagePart };
|
|
123
120
|
}
|
|
121
|
+
/**
|
|
122
|
+
* Check if a URL points to localhost
|
|
123
|
+
*/
|
|
124
|
+
function isLocalhostUrl(url) {
|
|
125
|
+
return (url.hostname === "localhost" ||
|
|
126
|
+
url.hostname === "127.0.0.1" ||
|
|
127
|
+
url.hostname === "::1" ||
|
|
128
|
+
url.hostname === "0.0.0.0");
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Download a file from a URL
|
|
132
|
+
*/
|
|
133
|
+
async function downloadFile(url) {
|
|
134
|
+
// Fetch the file
|
|
135
|
+
const response = await fetch(url);
|
|
136
|
+
if (!response.ok) {
|
|
137
|
+
throw new Error(`Failed to fetch ${url}: ${response.statusText}`);
|
|
138
|
+
}
|
|
139
|
+
return await response.arrayBuffer();
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Process messages to inline file and image URLs that point to localhost
|
|
143
|
+
* by converting them to base64. This solves the problem of LLMs not being
|
|
144
|
+
* able to access localhost URLs.
|
|
145
|
+
*/
|
|
146
|
+
export async function inlineMessagesFiles(messages) {
|
|
147
|
+
// Process each message to convert localhost URLs to base64
|
|
148
|
+
return Promise.all(messages.map(async (message) => {
|
|
149
|
+
if ((message.role !== "user" && message.role !== "assistant") ||
|
|
150
|
+
typeof message.content === "string" ||
|
|
151
|
+
!Array.isArray(message.content)) {
|
|
152
|
+
return message;
|
|
153
|
+
}
|
|
154
|
+
const processedContent = await Promise.all(message.content.map(async (part) => {
|
|
155
|
+
if (part.type === "image" && part.image instanceof URL) {
|
|
156
|
+
assert(message.role === "user", "Images can only be in user messages");
|
|
157
|
+
if (isLocalhostUrl(part.image)) {
|
|
158
|
+
const imageData = await downloadFile(part.image);
|
|
159
|
+
return { ...part, image: imageData };
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
// Handle file parts
|
|
163
|
+
if (part.type === "file" && part.data instanceof URL) {
|
|
164
|
+
if (isLocalhostUrl(part.data)) {
|
|
165
|
+
const fileData = await downloadFile(part.data);
|
|
166
|
+
return { ...part, data: fileData };
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
return part;
|
|
170
|
+
}));
|
|
171
|
+
if (message.role === "user") {
|
|
172
|
+
return { ...message, content: processedContent };
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
return { ...message, content: processedContent };
|
|
176
|
+
}
|
|
177
|
+
}));
|
|
178
|
+
}
|
|
124
179
|
//# sourceMappingURL=files.js.map
|
package/dist/client/files.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/client/files.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../../src/client/files.ts"],"names":[],"mappings":"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"}
|