@convex-dev/agent 0.6.0-alpha.1 → 0.6.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/package.json +1 -1
- package/src/UIMessages.ts +135 -0
- package/src/client/index.ts +56 -14
- package/src/client/search.test.ts +4 -5
- package/src/client/search.ts +45 -4
- package/src/client/streaming.integration.test.ts +1206 -0
- package/src/client/streaming.ts +9 -2
- package/src/mapping.test.ts +136 -71
- package/src/mapping.ts +81 -28
- package/dist/UIMessages.d.ts +0 -46
- package/dist/UIMessages.d.ts.map +0 -1
- package/dist/UIMessages.js +0 -546
- package/dist/UIMessages.js.map +0 -1
- package/dist/client/createTool.d.ts +0 -167
- package/dist/client/createTool.d.ts.map +0 -1
- package/dist/client/createTool.js +0 -116
- package/dist/client/createTool.js.map +0 -1
- package/dist/client/defaultComponent.d.ts +0 -11
- package/dist/client/defaultComponent.d.ts.map +0 -1
- package/dist/client/defaultComponent.js +0 -7
- package/dist/client/defaultComponent.js.map +0 -1
- package/dist/client/definePlaygroundAPI.d.ts +0 -1725
- package/dist/client/definePlaygroundAPI.d.ts.map +0 -1
- package/dist/client/definePlaygroundAPI.js +0 -271
- package/dist/client/definePlaygroundAPI.js.map +0 -1
- package/dist/client/files.d.ts +0 -69
- package/dist/client/files.d.ts.map +0 -1
- package/dist/client/files.js +0 -181
- package/dist/client/files.js.map +0 -1
- package/dist/client/index.d.ts +0 -2091
- package/dist/client/index.d.ts.map +0 -1
- package/dist/client/index.js +0 -895
- package/dist/client/index.js.map +0 -1
- package/dist/client/messages.d.ts +0 -461
- package/dist/client/messages.d.ts.map +0 -1
- package/dist/client/messages.js +0 -106
- package/dist/client/messages.js.map +0 -1
- package/dist/client/mockModel.d.ts +0 -42
- package/dist/client/mockModel.d.ts.map +0 -1
- package/dist/client/mockModel.js +0 -182
- package/dist/client/mockModel.js.map +0 -1
- package/dist/client/saveInputMessages.d.ts +0 -20
- package/dist/client/saveInputMessages.d.ts.map +0 -1
- package/dist/client/saveInputMessages.js +0 -58
- package/dist/client/saveInputMessages.js.map +0 -1
- package/dist/client/search.d.ts +0 -493
- package/dist/client/search.d.ts.map +0 -1
- package/dist/client/search.js +0 -425
- package/dist/client/search.js.map +0 -1
- package/dist/client/start.d.ts +0 -84
- package/dist/client/start.d.ts.map +0 -1
- package/dist/client/start.js +0 -185
- package/dist/client/start.js.map +0 -1
- package/dist/client/streamText.d.ts +0 -46
- package/dist/client/streamText.d.ts.map +0 -1
- package/dist/client/streamText.js +0 -117
- package/dist/client/streamText.js.map +0 -1
- package/dist/client/streaming.d.ts +0 -3778
- package/dist/client/streaming.d.ts.map +0 -1
- package/dist/client/streaming.js +0 -314
- package/dist/client/streaming.js.map +0 -1
- package/dist/client/threads.d.ts +0 -46
- package/dist/client/threads.d.ts.map +0 -1
- package/dist/client/threads.js +0 -49
- package/dist/client/threads.js.map +0 -1
- package/dist/client/types.d.ts +0 -461
- package/dist/client/types.d.ts.map +0 -1
- package/dist/client/types.js +0 -2
- package/dist/client/types.js.map +0 -1
- package/dist/client/utils.d.ts +0 -4
- package/dist/client/utils.d.ts.map +0 -1
- package/dist/client/utils.js +0 -21
- package/dist/client/utils.js.map +0 -1
- package/dist/component/_generated/api.d.ts +0 -48
- package/dist/component/_generated/api.d.ts.map +0 -1
- package/dist/component/_generated/api.js +0 -31
- package/dist/component/_generated/api.js.map +0 -1
- package/dist/component/_generated/component.d.ts +0 -3120
- package/dist/component/_generated/component.d.ts.map +0 -1
- package/dist/component/_generated/component.js +0 -11
- package/dist/component/_generated/component.js.map +0 -1
- package/dist/component/_generated/dataModel.d.ts +0 -46
- package/dist/component/_generated/dataModel.d.ts.map +0 -1
- package/dist/component/_generated/dataModel.js +0 -11
- package/dist/component/_generated/dataModel.js.map +0 -1
- package/dist/component/_generated/server.d.ts +0 -121
- package/dist/component/_generated/server.d.ts.map +0 -1
- package/dist/component/_generated/server.js +0 -78
- package/dist/component/_generated/server.js.map +0 -1
- package/dist/component/apiKeys.d.ts +0 -11
- package/dist/component/apiKeys.d.ts.map +0 -1
- package/dist/component/apiKeys.js +0 -69
- package/dist/component/apiKeys.js.map +0 -1
- package/dist/component/convex.config.d.ts +0 -3
- package/dist/component/convex.config.d.ts.map +0 -1
- package/dist/component/convex.config.js +0 -3
- package/dist/component/convex.config.js.map +0 -1
- package/dist/component/files.d.ts +0 -97
- package/dist/component/files.d.ts.map +0 -1
- package/dist/component/files.js +0 -190
- package/dist/component/files.js.map +0 -1
- package/dist/component/messages.d.ts +0 -3851
- package/dist/component/messages.d.ts.map +0 -1
- package/dist/component/messages.js +0 -757
- package/dist/component/messages.js.map +0 -1
- package/dist/component/schema.d.ts +0 -8026
- package/dist/component/schema.d.ts.map +0 -1
- package/dist/component/schema.js +0 -147
- package/dist/component/schema.js.map +0 -1
- package/dist/component/streams.d.ts +0 -128
- package/dist/component/streams.d.ts.map +0 -1
- package/dist/component/streams.js +0 -413
- package/dist/component/streams.js.map +0 -1
- package/dist/component/threads.d.ts +0 -115
- package/dist/component/threads.d.ts.map +0 -1
- package/dist/component/threads.js +0 -208
- package/dist/component/threads.js.map +0 -1
- package/dist/component/users.d.ts +0 -52
- package/dist/component/users.d.ts.map +0 -1
- package/dist/component/users.js +0 -229
- package/dist/component/users.js.map +0 -1
- package/dist/component/vector/index.d.ts +0 -61
- package/dist/component/vector/index.d.ts.map +0 -1
- package/dist/component/vector/index.js +0 -146
- package/dist/component/vector/index.js.map +0 -1
- package/dist/component/vector/tables.d.ts +0 -58
- package/dist/component/vector/tables.d.ts.map +0 -1
- package/dist/component/vector/tables.js +0 -56
- package/dist/component/vector/tables.js.map +0 -1
- package/dist/deltas.d.ts +0 -43
- package/dist/deltas.d.ts.map +0 -1
- package/dist/deltas.js +0 -446
- package/dist/deltas.js.map +0 -1
- package/dist/mapping.d.ts +0 -72
- package/dist/mapping.d.ts.map +0 -1
- package/dist/mapping.js +0 -677
- package/dist/mapping.js.map +0 -1
- package/dist/react/SmoothText.d.ts +0 -5
- package/dist/react/SmoothText.d.ts.map +0 -1
- package/dist/react/SmoothText.js +0 -6
- package/dist/react/SmoothText.js.map +0 -1
- package/dist/react/index.d.ts +0 -25
- package/dist/react/index.d.ts.map +0 -1
- package/dist/react/index.js +0 -70
- package/dist/react/index.js.map +0 -1
- package/dist/react/optimisticallySendMessage.d.ts +0 -42
- package/dist/react/optimisticallySendMessage.d.ts.map +0 -1
- package/dist/react/optimisticallySendMessage.js +0 -74
- package/dist/react/optimisticallySendMessage.js.map +0 -1
- package/dist/react/types.d.ts +0 -12
- package/dist/react/types.d.ts.map +0 -1
- package/dist/react/types.js +0 -2
- package/dist/react/types.js.map +0 -1
- package/dist/react/useDeltaStreams.d.ts +0 -10
- package/dist/react/useDeltaStreams.d.ts.map +0 -1
- package/dist/react/useDeltaStreams.js +0 -106
- package/dist/react/useDeltaStreams.js.map +0 -1
- package/dist/react/useSmoothText.d.ts +0 -27
- package/dist/react/useSmoothText.d.ts.map +0 -1
- package/dist/react/useSmoothText.js +0 -68
- package/dist/react/useSmoothText.js.map +0 -1
- package/dist/react/useStreamingUIMessages.d.ts +0 -22
- package/dist/react/useStreamingUIMessages.d.ts.map +0 -1
- package/dist/react/useStreamingUIMessages.js +0 -92
- package/dist/react/useStreamingUIMessages.js.map +0 -1
- package/dist/react/useThreadMessages.d.ts +0 -104
- package/dist/react/useThreadMessages.d.ts.map +0 -1
- package/dist/react/useThreadMessages.js +0 -148
- package/dist/react/useThreadMessages.js.map +0 -1
- package/dist/react/useUIMessages.d.ts +0 -96
- package/dist/react/useUIMessages.d.ts.map +0 -1
- package/dist/react/useUIMessages.js +0 -108
- package/dist/react/useUIMessages.js.map +0 -1
- package/dist/shared.d.ts +0 -26
- package/dist/shared.d.ts.map +0 -1
- package/dist/shared.js +0 -67
- package/dist/shared.js.map +0 -1
- package/dist/validators.d.ts +0 -24516
- package/dist/validators.d.ts.map +0 -1
- package/dist/validators.js +0 -475
- package/dist/validators.js.map +0 -1
package/dist/mapping.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mapping.js","sourceRoot":"","sources":["../src/mapping.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SmoothText.d.ts","sourceRoot":"","sources":["../../src/react/SmoothText.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE3E,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,GAAG,OAAO,EACX,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,iBAAiB,UAGtC"}
|
package/dist/react/SmoothText.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SmoothText.js","sourceRoot":"","sources":["../../src/react/SmoothText.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA0B,MAAM,oBAAoB,CAAC;AAE3E,MAAM,UAAU,UAAU,CAAC,EACzB,IAAI,EACJ,GAAG,OAAO,EAC2B;IACrC,MAAM,CAAC,WAAW,CAAC,GAAG,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACnD,OAAO,WAAW,CAAC;AACrB,CAAC"}
|
package/dist/react/index.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
export { toUIMessages, type UIMessage } from "../UIMessages.js";
|
|
2
|
-
export { optimisticallySendMessage } from "./optimisticallySendMessage.js";
|
|
3
|
-
export { useSmoothText } from "./useSmoothText.js";
|
|
4
|
-
export { SmoothText } from "./SmoothText.js";
|
|
5
|
-
export { type ThreadMessagesQuery, useThreadMessages, useStreamingThreadMessages, } from "./useThreadMessages.js";
|
|
6
|
-
export { type UIMessagesQuery, useUIMessages } from "./useUIMessages.js";
|
|
7
|
-
export { useStreamingUIMessages } from "./useStreamingUIMessages.js";
|
|
8
|
-
/**
|
|
9
|
-
* @deprecated use useThreadMessages or useStreamingThreadMessages instead
|
|
10
|
-
* Use this hook to stream text from a server action, using the
|
|
11
|
-
* toTextStreamResponse or equivalent HTTP streaming endpoint returning text.
|
|
12
|
-
* @param url The URL of the server action to stream text from.
|
|
13
|
-
* e.g. https://....convex.site/yourendpoint
|
|
14
|
-
* @param threadId The ID of the thread to stream text from.
|
|
15
|
-
* @param token The auth token to use for the request.
|
|
16
|
-
* e.g. useAuthToken() from @convex-dev/auth/react
|
|
17
|
-
* @returns A tuple containing the {text, loading, error} and a function to call the endpoint
|
|
18
|
-
* with a given prompt, passing up { prompt, threadId } as the body in JSON.
|
|
19
|
-
*/
|
|
20
|
-
export declare function useStreamingText(url: string, threadId: string | null, token?: string): readonly [{
|
|
21
|
-
readonly text: string;
|
|
22
|
-
readonly loading: boolean;
|
|
23
|
-
readonly error: Error | null;
|
|
24
|
-
}, (prompt: string) => Promise<void>];
|
|
25
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAEhE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EACL,KAAK,mBAAmB,EACxB,iBAAiB,EACjB,0BAA0B,GAC3B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,KAAK,eAAe,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,KAAK,CAAC,EAAE,MAAM;;;;YAOS,MAAM,oBA2C9B"}
|
package/dist/react/index.js
DELETED
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { useMemo, useState } from "react";
|
|
3
|
-
export { toUIMessages } from "../UIMessages.js";
|
|
4
|
-
export { optimisticallySendMessage } from "./optimisticallySendMessage.js";
|
|
5
|
-
export { useSmoothText } from "./useSmoothText.js";
|
|
6
|
-
export { SmoothText } from "./SmoothText.js";
|
|
7
|
-
export { useThreadMessages, useStreamingThreadMessages, } from "./useThreadMessages.js";
|
|
8
|
-
export { useUIMessages } from "./useUIMessages.js";
|
|
9
|
-
export { useStreamingUIMessages } from "./useStreamingUIMessages.js";
|
|
10
|
-
/**
|
|
11
|
-
* @deprecated use useThreadMessages or useStreamingThreadMessages instead
|
|
12
|
-
* Use this hook to stream text from a server action, using the
|
|
13
|
-
* toTextStreamResponse or equivalent HTTP streaming endpoint returning text.
|
|
14
|
-
* @param url The URL of the server action to stream text from.
|
|
15
|
-
* e.g. https://....convex.site/yourendpoint
|
|
16
|
-
* @param threadId The ID of the thread to stream text from.
|
|
17
|
-
* @param token The auth token to use for the request.
|
|
18
|
-
* e.g. useAuthToken() from @convex-dev/auth/react
|
|
19
|
-
* @returns A tuple containing the {text, loading, error} and a function to call the endpoint
|
|
20
|
-
* with a given prompt, passing up { prompt, threadId } as the body in JSON.
|
|
21
|
-
*/
|
|
22
|
-
export function useStreamingText(url, threadId, token) {
|
|
23
|
-
const [text, setText] = useState("");
|
|
24
|
-
const [loading, setLoading] = useState(false);
|
|
25
|
-
const [error, setError] = useState(null);
|
|
26
|
-
const readStream = useMemo(() => async (prompt) => {
|
|
27
|
-
if (!threadId)
|
|
28
|
-
return;
|
|
29
|
-
try {
|
|
30
|
-
setText("");
|
|
31
|
-
setLoading(true);
|
|
32
|
-
setError(null);
|
|
33
|
-
const response = await fetch(url, {
|
|
34
|
-
method: "POST",
|
|
35
|
-
headers: {
|
|
36
|
-
"Content-Type": "application/json",
|
|
37
|
-
...(token ? { Authorization: `Bearer ${token}` } : {}),
|
|
38
|
-
},
|
|
39
|
-
body: JSON.stringify({ prompt, threadId }),
|
|
40
|
-
});
|
|
41
|
-
if (!response.ok) {
|
|
42
|
-
throw new Error(`HTTP error! status: ${response.status}`);
|
|
43
|
-
}
|
|
44
|
-
if (!response.body) {
|
|
45
|
-
throw new Error("No body");
|
|
46
|
-
}
|
|
47
|
-
const reader = response.body.getReader();
|
|
48
|
-
const decoder = new TextDecoder();
|
|
49
|
-
let accumulatedText = "";
|
|
50
|
-
while (true) {
|
|
51
|
-
const { done, value } = await reader.read();
|
|
52
|
-
if (done) {
|
|
53
|
-
break;
|
|
54
|
-
}
|
|
55
|
-
accumulatedText += decoder.decode(value);
|
|
56
|
-
setText(accumulatedText);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
catch (e) {
|
|
60
|
-
if (e instanceof Error && e.name !== "AbortError") {
|
|
61
|
-
setError(e);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
finally {
|
|
65
|
-
setLoading(false);
|
|
66
|
-
}
|
|
67
|
-
}, [threadId, token, url]);
|
|
68
|
-
return [{ text, loading, error }, readStream];
|
|
69
|
-
}
|
|
70
|
-
//# sourceMappingURL=index.js.map
|
package/dist/react/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import type { MessageDoc, StreamArgs } from "../validators.js";
|
|
2
|
-
import type { OptimisticLocalStore } from "convex/browser";
|
|
3
|
-
import type { UIMessage } from "../UIMessages.js";
|
|
4
|
-
import type { FunctionReference, PaginationOptions, PaginationResult } from "convex/server";
|
|
5
|
-
import type { SyncStreamsReturnValue } from "@convex-dev/agent";
|
|
6
|
-
/**
|
|
7
|
-
* Adds a sent message to the end of a list of messages, so it shows up until
|
|
8
|
-
* the message is saved on the server and arrives in the query.
|
|
9
|
-
* It generates a message with fields that match both MessageDoc and UIMessage,
|
|
10
|
-
* for convenience. It will not include any other fields you might have in your
|
|
11
|
-
* regular query, however.
|
|
12
|
-
*
|
|
13
|
-
* @param query The query used to fetch messages, typically with
|
|
14
|
-
* useThreadMessages or useUIMessages.
|
|
15
|
-
* @returns A function that can be used to optimistically send a message.
|
|
16
|
-
* If your mutation takes different arguments than { threadId, prompt }, you can
|
|
17
|
-
* use it as a helper function in your optimistic update:
|
|
18
|
-
* ```ts
|
|
19
|
-
* const sendMessage = useMutation(
|
|
20
|
-
* api.chatStreaming.streamStoryAsynchronously,
|
|
21
|
-
* ).withOptimisticUpdate(
|
|
22
|
-
* (store, args) => {
|
|
23
|
-
* optimisticallySendMessage(api.chatStreaming.listThreadMessages)(store, {
|
|
24
|
-
* threadId:
|
|
25
|
-
* prompt: whatever you would have passed to the mutation,
|
|
26
|
-
* })
|
|
27
|
-
* }
|
|
28
|
-
* );
|
|
29
|
-
* ```
|
|
30
|
-
*/
|
|
31
|
-
export declare function optimisticallySendMessage(query: FunctionReference<"query", "public", {
|
|
32
|
-
threadId: string;
|
|
33
|
-
paginationOpts: PaginationOptions;
|
|
34
|
-
streamArgs?: StreamArgs;
|
|
35
|
-
}, PaginationResult<MessageDoc | UIMessage> & {
|
|
36
|
-
streams?: SyncStreamsReturnValue;
|
|
37
|
-
}>): (store: OptimisticLocalStore, args: {
|
|
38
|
-
threadId: string;
|
|
39
|
-
prompt: string;
|
|
40
|
-
}) => void;
|
|
41
|
-
export declare function randomUUID(): string;
|
|
42
|
-
//# sourceMappingURL=optimisticallySendMessage.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"optimisticallySendMessage.d.ts","sourceRoot":"","sources":["../../src/react/optimisticallySendMessage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,EACV,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEhE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,iBAAiB,CACtB,OAAO,EACP,QAAQ,EACR;IACE,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,iBAAiB,CAAC;IAClC,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,EACD,gBAAgB,CAAC,UAAU,GAAG,SAAS,CAAC,GAAG;IACzC,OAAO,CAAC,EAAE,sBAAsB,CAAC;CAClC,CACF,GACA,CACD,KAAK,EAAE,oBAAoB,EAC3B,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,KACvC,IAAI,CAoCR;AAED,wBAAgB,UAAU,WAWzB"}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
import { insertAtTop } from "convex/react";
|
|
2
|
-
/**
|
|
3
|
-
* Adds a sent message to the end of a list of messages, so it shows up until
|
|
4
|
-
* the message is saved on the server and arrives in the query.
|
|
5
|
-
* It generates a message with fields that match both MessageDoc and UIMessage,
|
|
6
|
-
* for convenience. It will not include any other fields you might have in your
|
|
7
|
-
* regular query, however.
|
|
8
|
-
*
|
|
9
|
-
* @param query The query used to fetch messages, typically with
|
|
10
|
-
* useThreadMessages or useUIMessages.
|
|
11
|
-
* @returns A function that can be used to optimistically send a message.
|
|
12
|
-
* If your mutation takes different arguments than { threadId, prompt }, you can
|
|
13
|
-
* use it as a helper function in your optimistic update:
|
|
14
|
-
* ```ts
|
|
15
|
-
* const sendMessage = useMutation(
|
|
16
|
-
* api.chatStreaming.streamStoryAsynchronously,
|
|
17
|
-
* ).withOptimisticUpdate(
|
|
18
|
-
* (store, args) => {
|
|
19
|
-
* optimisticallySendMessage(api.chatStreaming.listThreadMessages)(store, {
|
|
20
|
-
* threadId:
|
|
21
|
-
* prompt: whatever you would have passed to the mutation,
|
|
22
|
-
* })
|
|
23
|
-
* }
|
|
24
|
-
* );
|
|
25
|
-
* ```
|
|
26
|
-
*/
|
|
27
|
-
export function optimisticallySendMessage(query) {
|
|
28
|
-
return (store, args) => {
|
|
29
|
-
const queries = store.getAllQueries(query);
|
|
30
|
-
let maxOrder = -1;
|
|
31
|
-
for (const q of queries) {
|
|
32
|
-
if (q.args?.threadId !== args.threadId)
|
|
33
|
-
continue;
|
|
34
|
-
if (q.args.streamArgs)
|
|
35
|
-
continue;
|
|
36
|
-
for (const m of q.value?.page ?? []) {
|
|
37
|
-
maxOrder = Math.max(maxOrder, m.order);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
const order = maxOrder + 1;
|
|
41
|
-
const stepOrder = 0;
|
|
42
|
-
const id = randomUUID();
|
|
43
|
-
const { prompt, ...rest } = args;
|
|
44
|
-
insertAtTop({
|
|
45
|
-
paginatedQuery: query,
|
|
46
|
-
argsToMatch: { threadId: args.threadId, streamArgs: undefined },
|
|
47
|
-
item: {
|
|
48
|
-
...rest,
|
|
49
|
-
_creationTime: Date.now(),
|
|
50
|
-
_id: id,
|
|
51
|
-
id,
|
|
52
|
-
key: `${args.threadId}-${order}-${stepOrder}`,
|
|
53
|
-
order,
|
|
54
|
-
stepOrder,
|
|
55
|
-
status: "pending",
|
|
56
|
-
tool: false,
|
|
57
|
-
message: { role: "user", content: prompt },
|
|
58
|
-
parts: [{ type: "text", text: prompt }],
|
|
59
|
-
role: "user",
|
|
60
|
-
text: prompt,
|
|
61
|
-
},
|
|
62
|
-
localQueryStore: store,
|
|
63
|
-
});
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
export function randomUUID() {
|
|
67
|
-
if (typeof crypto !== "undefined" &&
|
|
68
|
-
typeof crypto.randomUUID === "function") {
|
|
69
|
-
return crypto.randomUUID();
|
|
70
|
-
}
|
|
71
|
-
return (Math.random().toString(36).substring(2, 15) +
|
|
72
|
-
Math.random().toString(36).substring(2, 15));
|
|
73
|
-
}
|
|
74
|
-
//# sourceMappingURL=optimisticallySendMessage.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"optimisticallySendMessage.js","sourceRoot":"","sources":["../../src/react/optimisticallySendMessage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAW3C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,yBAAyB,CACvC,KAWC;IAKD,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACrB,MAAM,OAAO,GAAG,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC3C,IAAI,QAAQ,GAAG,CAAC,CAAC,CAAC;QAClB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,CAAC,IAAI,EAAE,QAAQ,KAAK,IAAI,CAAC,QAAQ;gBAAE,SAAS;YACjD,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU;gBAAE,SAAS;YAChC,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;gBACpC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC;QACH,CAAC;QACD,MAAM,KAAK,GAAG,QAAQ,GAAG,CAAC,CAAC;QAC3B,MAAM,SAAS,GAAG,CAAC,CAAC;QACpB,MAAM,EAAE,GAAG,UAAU,EAAE,CAAC;QACxB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;QACjC,WAAW,CAAC;YACV,cAAc,EAAE,KAAK;YACrB,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE;YAC/D,IAAI,EAAE;gBACJ,GAAG,IAAI;gBACP,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE;gBACzB,GAAG,EAAE,EAAE;gBACP,EAAE;gBACF,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,IAAI,KAAK,IAAI,SAAS,EAAE;gBAC7C,KAAK;gBACL,SAAS;gBACT,MAAM,EAAE,SAAS;gBACjB,IAAI,EAAE,KAAK;gBACX,OAAO,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;gBAC1C,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;gBACvC,IAAI,EAAE,MAAM;gBACZ,IAAI,EAAE,MAAM;aACb;YACD,eAAe,EAAE,KAAK;SACvB,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU;IACxB,IACE,OAAO,MAAM,KAAK,WAAW;QAC7B,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU,EACvC,CAAC;QACD,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC;IAC7B,CAAC;IACD,OAAO,CACL,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;QAC3C,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAC5C,CAAC;AACJ,CAAC"}
|
package/dist/react/types.d.ts
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { BetterOmit, Expand } from "convex-helpers";
|
|
2
|
-
import type { FunctionArgs, FunctionReference } from "convex/server";
|
|
3
|
-
import type { SyncStreamsReturnValue } from "../client/types.js";
|
|
4
|
-
import type { StreamArgs } from "../validators.js";
|
|
5
|
-
export type StreamQuery<Args = Record<string, unknown>> = FunctionReference<"query", "public", {
|
|
6
|
-
threadId: string;
|
|
7
|
-
streamArgs?: StreamArgs;
|
|
8
|
-
} & Args, {
|
|
9
|
-
streams: SyncStreamsReturnValue;
|
|
10
|
-
}>;
|
|
11
|
-
export type StreamQueryArgs<Query extends StreamQuery<unknown>> = Query extends StreamQuery<unknown> ? Expand<BetterOmit<FunctionArgs<Query>, "streamArgs">> : never;
|
|
12
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/react/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACrE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,MAAM,MAAM,WAAW,CAAC,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,iBAAiB,CACzE,OAAO,EACP,QAAQ,EACR;IACE,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,UAAU,CAAC;CACzB,GAAG,IAAI,EACR;IAAE,OAAO,EAAE,sBAAsB,CAAA;CAAE,CACpC,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,KAAK,SAAS,WAAW,CAAC,OAAO,CAAC,IAC5D,KAAK,SAAS,WAAW,CAAC,OAAO,CAAC,GAC9B,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC,CAAC,GACrD,KAAK,CAAC"}
|
package/dist/react/types.js
DELETED
package/dist/react/types.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/react/types.ts"],"names":[],"mappings":""}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { StreamQuery, StreamQueryArgs } from "./types.js";
|
|
2
|
-
import type { StreamDelta, StreamMessage } from "../validators.js";
|
|
3
|
-
export declare function useDeltaStreams<Query extends StreamQuery<any> = StreamQuery<object>>(query: Query, args: StreamQueryArgs<Query> | "skip", options?: {
|
|
4
|
-
startOrder?: number;
|
|
5
|
-
skipStreamIds?: string[];
|
|
6
|
-
}): {
|
|
7
|
-
streamMessage: StreamMessage;
|
|
8
|
-
deltas: StreamDelta[];
|
|
9
|
-
}[] | undefined;
|
|
10
|
-
//# sourceMappingURL=useDeltaStreams.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useDeltaStreams.d.ts","sourceRoot":"","sources":["../../src/react/useDeltaStreams.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG/D,OAAO,KAAK,EAAc,WAAW,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAM/E,wBAAgB,eAAe,CAC7B,KAAK,SAAS,WAAW,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,EAEpD,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,GAAG,MAAM,EACrC,OAAO,CAAC,EAAE;IACR,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B,GACA;IAAE,aAAa,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,WAAW,EAAE,CAAA;CAAE,EAAE,GAAG,SAAS,CA2IvE"}
|
|
@@ -1,106 +0,0 @@
|
|
|
1
|
-
"use client";
|
|
2
|
-
import { sorted } from "../shared.js";
|
|
3
|
-
import { useQuery } from "convex/react";
|
|
4
|
-
import { useState } from "react";
|
|
5
|
-
import { assert } from "convex-helpers";
|
|
6
|
-
export function useDeltaStreams(query, args, options) {
|
|
7
|
-
// We hold onto and modify state directly to avoid re-running unnecessarily.
|
|
8
|
-
const [state] = useState({
|
|
9
|
-
startOrder: options?.startOrder ?? 0,
|
|
10
|
-
deltaStreams: undefined,
|
|
11
|
-
threadId: args === "skip" ? undefined : args.threadId,
|
|
12
|
-
});
|
|
13
|
-
const [cursors, setCursors] = useState({});
|
|
14
|
-
if (args !== "skip" && state.threadId !== args.threadId) {
|
|
15
|
-
state.threadId = args.threadId;
|
|
16
|
-
state.deltaStreams = undefined;
|
|
17
|
-
state.startOrder = options?.startOrder ?? 0;
|
|
18
|
-
setCursors({});
|
|
19
|
-
}
|
|
20
|
-
if (state.deltaStreams?.length ||
|
|
21
|
-
(options?.startOrder && options.startOrder < state.startOrder)) {
|
|
22
|
-
const cacheFriendlyStartOrder = options?.startOrder
|
|
23
|
-
? // round down to the nearest 10 for some cache benefits
|
|
24
|
-
options.startOrder - (options.startOrder % 10)
|
|
25
|
-
: 0;
|
|
26
|
-
if (cacheFriendlyStartOrder !== state.startOrder) {
|
|
27
|
-
state.startOrder = cacheFriendlyStartOrder;
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
// Get all the active streams
|
|
31
|
-
const streamList = useQuery(query, args === "skip"
|
|
32
|
-
? args
|
|
33
|
-
: {
|
|
34
|
-
...args,
|
|
35
|
-
streamArgs: {
|
|
36
|
-
kind: "list",
|
|
37
|
-
startOrder: state.startOrder,
|
|
38
|
-
},
|
|
39
|
-
});
|
|
40
|
-
const streamMessages = args === "skip"
|
|
41
|
-
? undefined
|
|
42
|
-
: !streamList
|
|
43
|
-
? state.deltaStreams?.map(({ streamMessage }) => streamMessage)
|
|
44
|
-
: sorted(streamList.streams.messages.filter(({ streamId, order }) => !options?.skipStreamIds?.includes(streamId) &&
|
|
45
|
-
(!options?.startOrder || order >= options.startOrder)));
|
|
46
|
-
// When no active streams remain, clear the stale state so we stop
|
|
47
|
-
// returning old streaming UIMessages.
|
|
48
|
-
if (streamMessages !== undefined && streamMessages.length === 0) {
|
|
49
|
-
state.deltaStreams = undefined;
|
|
50
|
-
}
|
|
51
|
-
// Get the deltas for all the active streams, if any.
|
|
52
|
-
const cursorQuery = useQuery(query, args === "skip" || !streamMessages?.length
|
|
53
|
-
? "skip"
|
|
54
|
-
: {
|
|
55
|
-
...args,
|
|
56
|
-
streamArgs: {
|
|
57
|
-
kind: "deltas",
|
|
58
|
-
cursors: streamMessages.map(({ streamId }) => ({
|
|
59
|
-
streamId,
|
|
60
|
-
cursor: cursors[streamId] ?? 0,
|
|
61
|
-
})),
|
|
62
|
-
},
|
|
63
|
-
});
|
|
64
|
-
const newDeltas = cursorQuery?.streams.deltas;
|
|
65
|
-
if (newDeltas?.length && streamMessages) {
|
|
66
|
-
const newDeltasByStreamId = new Map();
|
|
67
|
-
for (const delta of newDeltas) {
|
|
68
|
-
const oldCursor = cursors[delta.streamId];
|
|
69
|
-
if (oldCursor && delta.start < oldCursor)
|
|
70
|
-
continue;
|
|
71
|
-
const existing = newDeltasByStreamId.get(delta.streamId);
|
|
72
|
-
if (existing) {
|
|
73
|
-
const previousEnd = existing.at(-1).end;
|
|
74
|
-
assert(previousEnd === delta.start, `Gap found in deltas for ${delta.streamId} jumping to ${delta.start} from ${previousEnd}`);
|
|
75
|
-
existing.push(delta);
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
assert(!oldCursor || oldCursor === delta.start, `Gap found - first delta after ${oldCursor} is ${delta.start} for stream ${delta.streamId}`);
|
|
79
|
-
newDeltasByStreamId.set(delta.streamId, [delta]);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
const newCursors = {};
|
|
83
|
-
for (const { streamId } of streamMessages) {
|
|
84
|
-
const cursor = newDeltasByStreamId.get(streamId)?.at(-1)?.end ?? cursors[streamId];
|
|
85
|
-
if (cursor !== undefined) {
|
|
86
|
-
newCursors[streamId] = cursor;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
setCursors(newCursors);
|
|
90
|
-
// we defensively create a new object so object identity matches contents
|
|
91
|
-
state.deltaStreams = streamMessages.map((streamMessage) => {
|
|
92
|
-
const streamId = streamMessage.streamId;
|
|
93
|
-
const old = state.deltaStreams?.find((ds) => ds.streamMessage.streamId === streamId);
|
|
94
|
-
const newDeltas = newDeltasByStreamId.get(streamId);
|
|
95
|
-
if (!newDeltas && streamMessage === old?.streamMessage) {
|
|
96
|
-
return old;
|
|
97
|
-
}
|
|
98
|
-
return {
|
|
99
|
-
streamMessage,
|
|
100
|
-
deltas: [...(old?.deltas ?? []), ...(newDeltas ?? [])],
|
|
101
|
-
};
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
return state.deltaStreams;
|
|
105
|
-
}
|
|
106
|
-
//# sourceMappingURL=useDeltaStreams.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useDeltaStreams.js","sourceRoot":"","sources":["../../src/react/useDeltaStreams.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
export type SmoothTextOptions = {
|
|
2
|
-
/**
|
|
3
|
-
* The number of characters to display per second.
|
|
4
|
-
*/
|
|
5
|
-
charsPerSec?: number;
|
|
6
|
-
/**
|
|
7
|
-
* Whether to initially start streaming.
|
|
8
|
-
* If this later turns to false, it'll continue streaming.
|
|
9
|
-
* This will start streaming the first value it sees.
|
|
10
|
-
*/
|
|
11
|
-
startStreaming?: boolean;
|
|
12
|
-
};
|
|
13
|
-
/**
|
|
14
|
-
* A hook that smoothly displays text as it is streamed.
|
|
15
|
-
*
|
|
16
|
-
* @param text The text to display. Pass in the full text each time.
|
|
17
|
-
* @param charsPerSec The number of characters to display per second.
|
|
18
|
-
* @returns A tuple of the visible text and the state of the smooth text,
|
|
19
|
-
* including the current cursor position and whether it's still streaming.
|
|
20
|
-
* This allows you to decide if it's too far behind and you want to adjust
|
|
21
|
-
* the charsPerSec or just prefer the full text.
|
|
22
|
-
*/
|
|
23
|
-
export declare function useSmoothText(text: string, { charsPerSec, startStreaming, }?: SmoothTextOptions): [string, {
|
|
24
|
-
cursor: number;
|
|
25
|
-
isStreaming: boolean;
|
|
26
|
-
}];
|
|
27
|
-
//# sourceMappingURL=useSmoothText.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useSmoothText.d.ts","sourceRoot":"","sources":["../../src/react/useSmoothText.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AACF;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,EACE,WAAmC,EACnC,cAAsB,GACvB,GAAE,iBAAsB,GACxB,CAAC,MAAM,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,CAAC,CAwEpD"}
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
import { useEffect, useRef, useState } from "react";
|
|
2
|
-
const FPS = 20;
|
|
3
|
-
const MS_PER_FRAME = 1000 / FPS;
|
|
4
|
-
const INITIAL_CHARS_PER_SEC = 128;
|
|
5
|
-
/**
|
|
6
|
-
* A hook that smoothly displays text as it is streamed.
|
|
7
|
-
*
|
|
8
|
-
* @param text The text to display. Pass in the full text each time.
|
|
9
|
-
* @param charsPerSec The number of characters to display per second.
|
|
10
|
-
* @returns A tuple of the visible text and the state of the smooth text,
|
|
11
|
-
* including the current cursor position and whether it's still streaming.
|
|
12
|
-
* This allows you to decide if it's too far behind and you want to adjust
|
|
13
|
-
* the charsPerSec or just prefer the full text.
|
|
14
|
-
*/
|
|
15
|
-
export function useSmoothText(text, { charsPerSec = INITIAL_CHARS_PER_SEC, startStreaming = false, } = {}) {
|
|
16
|
-
const [visibleText, setVisibleText] = useState(startStreaming ? "" : text || "");
|
|
17
|
-
const smoothState = useRef({
|
|
18
|
-
tick: Date.now(),
|
|
19
|
-
cursor: visibleText.length,
|
|
20
|
-
lastUpdate: Date.now(),
|
|
21
|
-
lastUpdateLength: text.length,
|
|
22
|
-
charsPerMs: charsPerSec / 1000,
|
|
23
|
-
initial: true,
|
|
24
|
-
});
|
|
25
|
-
const isStreaming = smoothState.current.cursor < text.length;
|
|
26
|
-
useEffect(() => {
|
|
27
|
-
if (!isStreaming) {
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
if (smoothState.current.lastUpdateLength !== text.length) {
|
|
31
|
-
const timeSinceLastUpdate = Date.now() - smoothState.current.lastUpdate;
|
|
32
|
-
const latestCharsPerMs = (text.length - smoothState.current.lastUpdateLength) /
|
|
33
|
-
timeSinceLastUpdate;
|
|
34
|
-
// Is the rate increasing?
|
|
35
|
-
const rateError = latestCharsPerMs - smoothState.current.charsPerMs;
|
|
36
|
-
// Is our visible text falling behind what it could show?
|
|
37
|
-
const charLag = smoothState.current.lastUpdateLength - smoothState.current.cursor;
|
|
38
|
-
const lagRate = charLag / timeSinceLastUpdate;
|
|
39
|
-
const charsPerMs = latestCharsPerMs +
|
|
40
|
-
(smoothState.current.initial
|
|
41
|
-
? 0
|
|
42
|
-
: Math.max(0, (rateError + lagRate) / 2));
|
|
43
|
-
smoothState.current.initial = false;
|
|
44
|
-
// Smooth out the charsPerSec by weighting it with the previous value.
|
|
45
|
-
smoothState.current.charsPerMs = Math.min((2 * charsPerMs + smoothState.current.charsPerMs) / 3, smoothState.current.charsPerMs * 2);
|
|
46
|
-
}
|
|
47
|
-
smoothState.current.tick = Math.max(smoothState.current.tick, Date.now() - MS_PER_FRAME);
|
|
48
|
-
smoothState.current.lastUpdate = Date.now();
|
|
49
|
-
smoothState.current.lastUpdateLength = text.length;
|
|
50
|
-
function update() {
|
|
51
|
-
if (smoothState.current.cursor >= text.length) {
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
const now = Date.now();
|
|
55
|
-
const timeSinceLastUpdate = now - smoothState.current.tick;
|
|
56
|
-
const charsSinceLastUpdate = Math.floor(timeSinceLastUpdate * smoothState.current.charsPerMs);
|
|
57
|
-
const chars = Math.min(charsSinceLastUpdate, text.length - smoothState.current.cursor);
|
|
58
|
-
smoothState.current.cursor += chars;
|
|
59
|
-
smoothState.current.tick += chars / smoothState.current.charsPerMs;
|
|
60
|
-
setVisibleText(text.slice(0, smoothState.current.cursor));
|
|
61
|
-
}
|
|
62
|
-
update();
|
|
63
|
-
const interval = setInterval(update, MS_PER_FRAME);
|
|
64
|
-
return () => clearInterval(interval);
|
|
65
|
-
}, [text, isStreaming, charsPerSec]);
|
|
66
|
-
return [visibleText, { cursor: smoothState.current.cursor, isStreaming }];
|
|
67
|
-
}
|
|
68
|
-
//# sourceMappingURL=useSmoothText.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useSmoothText.js","sourceRoot":"","sources":["../../src/react/useSmoothText.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { type UIDataTypes, type UITools } from "ai";
|
|
2
|
-
import type { StreamQuery, StreamQueryArgs } from "./types.js";
|
|
3
|
-
import { type UIMessage } from "../UIMessages.js";
|
|
4
|
-
/**
|
|
5
|
-
* A hook that fetches streaming messages from a thread and converts them to UIMessages
|
|
6
|
-
* using AI SDK's readUIMessageStream.
|
|
7
|
-
* This ONLY returns streaming UIMessages. To get both full and streaming messages,
|
|
8
|
-
* use `useUIMessages`.
|
|
9
|
-
*
|
|
10
|
-
* @param query The query to use to fetch messages.
|
|
11
|
-
* It must take as arguments `{ threadId, paginationOpts, streamArgs }` and
|
|
12
|
-
* return a `streams` object returned from `agent.syncStreams`.
|
|
13
|
-
* @param args The arguments to pass to the query other than `paginationOpts`
|
|
14
|
-
* and `streamArgs`. So `{ threadId }` at minimum, plus any other arguments that
|
|
15
|
-
* you want to pass to the query.
|
|
16
|
-
* @returns The streaming UIMessages.
|
|
17
|
-
*/
|
|
18
|
-
export declare function useStreamingUIMessages<METADATA = unknown, DATA_PARTS extends UIDataTypes = UIDataTypes, TOOLS extends UITools = UITools, Query extends StreamQuery<any> = StreamQuery<object>>(query: Query, args: StreamQueryArgs<Query> | "skip", options?: {
|
|
19
|
-
startOrder?: number;
|
|
20
|
-
skipStreamIds?: string[];
|
|
21
|
-
}): UIMessage<METADATA, DATA_PARTS, TOOLS>[] | undefined;
|
|
22
|
-
//# sourceMappingURL=useStreamingUIMessages.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useStreamingUIMessages.d.ts","sourceRoot":"","sources":["../../src/react/useStreamingUIMessages.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAAuB,KAAK,OAAO,EAAE,MAAM,IAAI,CAAC;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAiBlD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,GAAG,OAAO,EAClB,UAAU,SAAS,WAAW,GAAG,WAAW,EAC5C,KAAK,SAAS,OAAO,GAAG,OAAO,EAC/B,KAAK,SAAS,WAAW,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,MAAM,CAAC,EAEpD,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,eAAe,CAAC,KAAK,CAAC,GAAG,MAAM,EACrC,OAAO,CAAC,EAAE;IACR,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B,GAEA,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,GAAG,SAAS,CA8FtD"}
|