@assistant-ui/react 0.7.58 → 0.7.59
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/cloud/AssistantCloud.d.ts.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloud.js +1 -1
- package/dist/cloud/AssistantCloud.js.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloud.mjs +1 -1
- package/dist/cloud/AssistantCloud.mjs.map +1 -0
- package/dist/cloud/AssistantCloudAPI.d.ts.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAPI.js +1 -1
- package/dist/cloud/AssistantCloudAPI.js.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAPI.mjs +1 -1
- package/dist/cloud/AssistantCloudAPI.mjs.map +1 -0
- package/dist/cloud/AssistantCloudAuthStrategy.d.ts.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAuthStrategy.js +1 -1
- package/dist/cloud/AssistantCloudAuthStrategy.js.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAuthStrategy.mjs +1 -1
- package/dist/cloud/AssistantCloudAuthStrategy.mjs.map +1 -0
- package/dist/cloud/AssistantCloudAuthTokens.d.ts.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAuthTokens.js +1 -1
- package/dist/cloud/AssistantCloudAuthTokens.js.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAuthTokens.mjs +1 -1
- package/dist/cloud/AssistantCloudAuthTokens.mjs.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudRuns.d.ts +1 -1
- package/dist/cloud/AssistantCloudRuns.d.ts.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudRuns.js +1 -1
- package/dist/cloud/AssistantCloudRuns.js.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudRuns.mjs +1 -1
- package/dist/cloud/AssistantCloudRuns.mjs.map +1 -0
- package/dist/cloud/AssistantCloudThreadHistoryAdapter.d.ts +5 -0
- package/dist/cloud/AssistantCloudThreadHistoryAdapter.d.ts.map +1 -0
- package/dist/cloud/AssistantCloudThreadHistoryAdapter.js +72 -0
- package/dist/cloud/AssistantCloudThreadHistoryAdapter.js.map +1 -0
- package/dist/cloud/AssistantCloudThreadHistoryAdapter.mjs +47 -0
- package/dist/cloud/AssistantCloudThreadHistoryAdapter.mjs.map +1 -0
- package/dist/cloud/AssistantCloudThreadMessages.d.ts +30 -0
- package/dist/cloud/AssistantCloudThreadMessages.d.ts.map +1 -0
- package/dist/cloud/AssistantCloudThreadMessages.js +46 -0
- package/dist/cloud/AssistantCloudThreadMessages.js.map +1 -0
- package/dist/cloud/AssistantCloudThreadMessages.mjs +21 -0
- package/dist/cloud/AssistantCloudThreadMessages.mjs.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudThreads.d.ts +2 -0
- package/dist/cloud/AssistantCloudThreads.d.ts.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudThreads.js +8 -3
- package/dist/cloud/AssistantCloudThreads.js.map +1 -0
- package/dist/cloud/AssistantCloudThreads.mjs +30 -0
- package/dist/cloud/AssistantCloudThreads.mjs.map +1 -0
- package/dist/cloud/auiV0.d.ts +46 -0
- package/dist/cloud/auiV0.d.ts.map +1 -0
- package/dist/cloud/auiV0.js +99 -0
- package/dist/cloud/auiV0.js.map +1 -0
- package/dist/cloud/auiV0.mjs +73 -0
- package/dist/cloud/auiV0.mjs.map +1 -0
- package/dist/cloud/index.d.ts.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/index.js +1 -1
- package/dist/cloud/index.js.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/index.mjs +1 -1
- package/dist/cloud/index.mjs.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/useCloudThreadListRuntime.d.ts +1 -1
- package/dist/cloud/useCloudThreadListRuntime.d.ts.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/useCloudThreadListRuntime.js +16 -4
- package/dist/cloud/useCloudThreadListRuntime.js.map +1 -0
- package/dist/{runtimes/remote-thread-list/cloud → cloud}/useCloudThreadListRuntime.mjs +23 -5
- package/dist/cloud/useCloudThreadListRuntime.mjs.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -0
- package/dist/index.mjs.map +1 -1
- package/dist/model-context/makeAssistantTool.d.ts +2 -1
- package/dist/model-context/makeAssistantTool.d.ts.map +1 -1
- package/dist/model-context/makeAssistantTool.js.map +1 -1
- package/dist/model-context/makeAssistantTool.mjs.map +1 -1
- package/dist/model-context/makeAssistantToolUI.d.ts +2 -1
- package/dist/model-context/makeAssistantToolUI.d.ts.map +1 -1
- package/dist/model-context/makeAssistantToolUI.js.map +1 -1
- package/dist/model-context/makeAssistantToolUI.mjs.map +1 -1
- package/dist/model-context/useAssistantTool.d.ts +3 -2
- package/dist/model-context/useAssistantTool.d.ts.map +1 -1
- package/dist/model-context/useAssistantTool.js.map +1 -1
- package/dist/model-context/useAssistantTool.mjs.map +1 -1
- package/dist/model-context/useAssistantToolUI.d.ts +2 -1
- package/dist/model-context/useAssistantToolUI.d.ts.map +1 -1
- package/dist/model-context/useAssistantToolUI.js.map +1 -1
- package/dist/model-context/useAssistantToolUI.mjs.map +1 -1
- package/dist/model-context/useInlineRender.d.ts +2 -1
- package/dist/model-context/useInlineRender.d.ts.map +1 -1
- package/dist/model-context/useInlineRender.js.map +1 -1
- package/dist/model-context/useInlineRender.mjs.map +1 -1
- package/dist/runtimes/edge/EdgeRuntimeRequestOptions.d.ts +5 -4
- package/dist/runtimes/edge/EdgeRuntimeRequestOptions.d.ts.map +1 -1
- package/dist/runtimes/edge/EdgeRuntimeRequestOptions.js +1 -1
- package/dist/runtimes/edge/EdgeRuntimeRequestOptions.js.map +1 -1
- package/dist/runtimes/edge/EdgeRuntimeRequestOptions.mjs +1 -1
- package/dist/runtimes/edge/EdgeRuntimeRequestOptions.mjs.map +1 -1
- package/dist/runtimes/edge/converters/fromLanguageModelMessages.d.ts.map +1 -1
- package/dist/runtimes/edge/converters/fromLanguageModelMessages.js.map +1 -1
- package/dist/runtimes/edge/converters/fromLanguageModelMessages.mjs.map +1 -1
- package/dist/runtimes/edge/createEdgeRuntimeAPI.d.ts +2 -2
- package/dist/runtimes/edge/createEdgeRuntimeAPI.d.ts.map +1 -1
- package/dist/runtimes/edge/createEdgeRuntimeAPI.js +1 -1
- package/dist/runtimes/edge/createEdgeRuntimeAPI.js.map +1 -1
- package/dist/runtimes/edge/createEdgeRuntimeAPI.mjs +1 -1
- package/dist/runtimes/edge/createEdgeRuntimeAPI.mjs.map +1 -1
- package/dist/runtimes/edge/streams/AssistantStreamChunkType.d.ts +4 -3
- package/dist/runtimes/edge/streams/AssistantStreamChunkType.d.ts.map +1 -1
- package/dist/runtimes/edge/streams/AssistantStreamChunkType.js.map +1 -1
- package/dist/runtimes/edge/streams/AssistantStreamChunkType.mjs.map +1 -1
- package/dist/runtimes/edge/streams/runResultStream.js +1 -1
- package/dist/runtimes/edge/streams/runResultStream.js.map +1 -1
- package/dist/runtimes/edge/streams/runResultStream.mjs +1 -1
- package/dist/runtimes/edge/streams/runResultStream.mjs.map +1 -1
- package/dist/runtimes/edge/streams/toolResultStream.d.ts +4 -3
- package/dist/runtimes/edge/streams/toolResultStream.d.ts.map +1 -1
- package/dist/runtimes/edge/streams/toolResultStream.js.map +1 -1
- package/dist/runtimes/edge/streams/toolResultStream.mjs.map +1 -1
- package/dist/runtimes/external-store/ThreadMessageLike.d.ts +11 -3
- package/dist/runtimes/external-store/ThreadMessageLike.d.ts.map +1 -1
- package/dist/runtimes/external-store/ThreadMessageLike.js +10 -1
- package/dist/runtimes/external-store/ThreadMessageLike.js.map +1 -1
- package/dist/runtimes/external-store/ThreadMessageLike.mjs +10 -1
- package/dist/runtimes/external-store/ThreadMessageLike.mjs.map +1 -1
- package/dist/runtimes/local/ChatModelAdapter.d.ts +3 -2
- package/dist/runtimes/local/ChatModelAdapter.d.ts.map +1 -1
- package/dist/runtimes/local/ChatModelAdapter.js.map +1 -1
- package/dist/runtimes/local/LocalThreadRuntimeCore.d.ts +2 -0
- package/dist/runtimes/local/LocalThreadRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/local/LocalThreadRuntimeCore.js +27 -1
- package/dist/runtimes/local/LocalThreadRuntimeCore.js.map +1 -1
- package/dist/runtimes/local/LocalThreadRuntimeCore.mjs +27 -1
- package/dist/runtimes/local/LocalThreadRuntimeCore.mjs.map +1 -1
- package/dist/runtimes/local/useLocalRuntime.d.ts.map +1 -1
- package/dist/runtimes/local/useLocalRuntime.js +14 -7
- package/dist/runtimes/local/useLocalRuntime.js.map +1 -1
- package/dist/runtimes/local/useLocalRuntime.mjs +14 -7
- package/dist/runtimes/local/useLocalRuntime.mjs.map +1 -1
- package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js +1 -6
- package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
- package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.mjs +1 -6
- package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.mjs.map +1 -1
- package/dist/runtimes/remote-thread-list/index.d.ts +0 -1
- package/dist/runtimes/remote-thread-list/index.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/index.js +1 -4
- package/dist/runtimes/remote-thread-list/index.js.map +1 -1
- package/dist/runtimes/remote-thread-list/index.mjs +0 -1
- package/dist/runtimes/remote-thread-list/index.mjs.map +1 -1
- package/dist/types/AssistantTypes.d.ts +8 -7
- package/dist/types/AssistantTypes.d.ts.map +1 -1
- package/dist/types/AssistantTypes.js.map +1 -1
- package/dist/types/ContentPartComponentTypes.d.ts +3 -2
- package/dist/types/ContentPartComponentTypes.d.ts.map +1 -1
- package/dist/types/ContentPartComponentTypes.js.map +1 -1
- package/dist/utils/json/fix-json.d.ts.map +1 -0
- package/dist/{runtimes/edge/partial-json → utils/json}/fix-json.js +1 -1
- package/dist/utils/json/fix-json.js.map +1 -0
- package/dist/{runtimes/edge/partial-json → utils/json}/fix-json.mjs +1 -1
- package/dist/utils/json/fix-json.mjs.map +1 -0
- package/dist/utils/json/is-json.d.ts +5 -0
- package/dist/utils/json/is-json.d.ts.map +1 -0
- package/dist/utils/json/is-json.js +56 -0
- package/dist/utils/json/is-json.js.map +1 -0
- package/dist/utils/json/is-json.mjs +29 -0
- package/dist/utils/json/is-json.mjs.map +1 -0
- package/dist/utils/json/json-value.d.ts +6 -0
- package/dist/utils/json/json-value.d.ts.map +1 -0
- package/dist/utils/json/json-value.js +19 -0
- package/dist/utils/json/json-value.js.map +1 -0
- package/dist/utils/json/json-value.mjs +1 -0
- package/dist/utils/json/json-value.mjs.map +1 -0
- package/dist/utils/json/parse-partial-json.d.ts.map +1 -0
- package/dist/{runtimes/edge/partial-json → utils/json}/parse-partial-json.js +1 -1
- package/dist/utils/json/parse-partial-json.js.map +1 -0
- package/dist/{runtimes/edge/partial-json → utils/json}/parse-partial-json.mjs +1 -1
- package/dist/utils/json/parse-partial-json.mjs.map +1 -0
- package/package.json +1 -1
- package/src/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudRuns.tsx +1 -1
- package/src/cloud/AssistantCloudThreadHistoryAdapter.tsx +64 -0
- package/src/cloud/AssistantCloudThreadMessages.tsx +48 -0
- package/src/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudThreads.tsx +10 -3
- package/src/cloud/auiV0.ts +130 -0
- package/src/{runtimes/remote-thread-list/cloud → cloud}/useCloudThreadListRuntime.tsx +29 -5
- package/src/index.ts +1 -0
- package/src/model-context/makeAssistantTool.tsx +2 -4
- package/src/model-context/makeAssistantToolUI.tsx +2 -4
- package/src/model-context/useAssistantTool.tsx +3 -5
- package/src/model-context/useAssistantToolUI.tsx +2 -4
- package/src/model-context/useInlineRender.tsx +2 -1
- package/src/runtimes/edge/EdgeRuntimeRequestOptions.ts +4 -2
- package/src/runtimes/edge/converters/fromLanguageModelMessages.ts +2 -1
- package/src/runtimes/edge/createEdgeRuntimeAPI.ts +4 -4
- package/src/runtimes/edge/streams/AssistantStreamChunkType.ts +4 -3
- package/src/runtimes/edge/streams/runResultStream.ts +1 -1
- package/src/runtimes/edge/streams/toolResultStream.ts +4 -3
- package/src/runtimes/external-store/ThreadMessageLike.tsx +24 -3
- package/src/runtimes/local/ChatModelAdapter.tsx +3 -2
- package/src/runtimes/local/LocalThreadRuntimeCore.tsx +37 -1
- package/src/runtimes/local/useLocalRuntime.tsx +14 -7
- package/src/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.tsx +1 -6
- package/src/runtimes/remote-thread-list/index.ts +0 -1
- package/src/types/AssistantTypes.ts +11 -7
- package/src/types/ContentPartComponentTypes.tsx +3 -2
- package/src/utils/json/is-json.ts +42 -0
- package/src/utils/json/json-value.ts +13 -0
- package/dist/runtimes/edge/partial-json/fix-json.d.ts.map +0 -1
- package/dist/runtimes/edge/partial-json/fix-json.js.map +0 -1
- package/dist/runtimes/edge/partial-json/fix-json.mjs.map +0 -1
- package/dist/runtimes/edge/partial-json/parse-partial-json.d.ts.map +0 -1
- package/dist/runtimes/edge/partial-json/parse-partial-json.js.map +0 -1
- package/dist/runtimes/edge/partial-json/parse-partial-json.mjs.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloud.d.ts.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloud.js.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloud.mjs.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAPI.d.ts.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAPI.js.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAPI.mjs.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAuthStrategy.d.ts.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAuthStrategy.js.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAuthStrategy.mjs.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAuthTokens.d.ts.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAuthTokens.js.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloudAuthTokens.mjs.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloudRuns.d.ts.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloudRuns.js.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloudRuns.mjs.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloudThreads.d.ts.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloudThreads.js.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloudThreads.mjs +0 -25
- package/dist/runtimes/remote-thread-list/cloud/AssistantCloudThreads.mjs.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/index.d.ts.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/index.js.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/index.mjs.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.d.ts.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.js.map +0 -1
- package/dist/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.mjs.map +0 -1
- /package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloud.d.ts +0 -0
- /package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAPI.d.ts +0 -0
- /package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAuthStrategy.d.ts +0 -0
- /package/dist/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAuthTokens.d.ts +0 -0
- /package/dist/{runtimes/remote-thread-list/cloud → cloud}/index.d.ts +0 -0
- /package/dist/{runtimes/edge/partial-json → utils/json}/fix-json.d.ts +0 -0
- /package/dist/{runtimes/edge/partial-json → utils/json}/parse-partial-json.d.ts +0 -0
- /package/src/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloud.tsx +0 -0
- /package/src/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAPI.tsx +0 -0
- /package/src/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAuthStrategy.tsx +0 -0
- /package/src/{runtimes/remote-thread-list/cloud → cloud}/AssistantCloudAuthTokens.tsx +0 -0
- /package/src/{runtimes/remote-thread-list/cloud → cloud}/index.ts +0 -0
- /package/src/{runtimes/edge/partial-json → utils/json}/fix-json.ts +0 -0
- /package/src/{runtimes/edge/partial-json → utils/json}/parse-partial-json.ts +0 -0
@@ -0,0 +1,130 @@
|
|
1
|
+
import { JSONObject } from "@ai-sdk/provider";
|
2
|
+
import { ThreadMessage } from "../types";
|
3
|
+
import { MessageStatus } from "../types/AssistantTypes";
|
4
|
+
import { fromThreadMessageLike } from "../runtimes/external-store/ThreadMessageLike";
|
5
|
+
import { CloudMessage } from "./AssistantCloudThreadMessages";
|
6
|
+
import { isJSONValue } from "../utils/json/is-json";
|
7
|
+
import { ReadonlyJSONValue } from "../utils/json/json-value";
|
8
|
+
import { ExportedMessageRepositoryItem } from "../runtimes/utils/MessageRepository";
|
9
|
+
|
10
|
+
type AuiV0MessageContentPart =
|
11
|
+
| {
|
12
|
+
readonly type: "text";
|
13
|
+
readonly text: string;
|
14
|
+
}
|
15
|
+
| {
|
16
|
+
readonly type: "tool-call";
|
17
|
+
readonly toolCallId: string;
|
18
|
+
readonly toolName: string;
|
19
|
+
readonly args: ReadonlyJSONValue;
|
20
|
+
readonly result?: ReadonlyJSONValue;
|
21
|
+
readonly isError?: true;
|
22
|
+
}
|
23
|
+
| {
|
24
|
+
readonly type: "tool-call";
|
25
|
+
readonly toolCallId: string;
|
26
|
+
readonly toolName: string;
|
27
|
+
readonly argsText: string;
|
28
|
+
readonly result?: ReadonlyJSONValue;
|
29
|
+
readonly isError?: true;
|
30
|
+
};
|
31
|
+
|
32
|
+
type AuiV0Message = {
|
33
|
+
readonly role: "assistant" | "user" | "system";
|
34
|
+
readonly status?: MessageStatus;
|
35
|
+
readonly content: readonly AuiV0MessageContentPart[];
|
36
|
+
readonly metadata: {
|
37
|
+
readonly unstable_annotations: readonly ReadonlyJSONValue[];
|
38
|
+
readonly unstable_data: readonly ReadonlyJSONValue[];
|
39
|
+
readonly steps: readonly {
|
40
|
+
readonly usage?: {
|
41
|
+
readonly promptTokens: number;
|
42
|
+
readonly completionTokens: number;
|
43
|
+
};
|
44
|
+
}[];
|
45
|
+
readonly custom: Readonly<JSONObject>;
|
46
|
+
};
|
47
|
+
};
|
48
|
+
|
49
|
+
export const auiV0Encode = (message: ThreadMessage): AuiV0Message => {
|
50
|
+
// TODO attachments are currently intentionally ignored
|
51
|
+
// info: ID and createdAt are ignored (we use the server value instead)
|
52
|
+
return {
|
53
|
+
role: message.role,
|
54
|
+
content: message.content.map((part) => {
|
55
|
+
const type = part.type;
|
56
|
+
switch (type) {
|
57
|
+
case "text": {
|
58
|
+
return {
|
59
|
+
type: "text",
|
60
|
+
text: part.text,
|
61
|
+
};
|
62
|
+
}
|
63
|
+
|
64
|
+
case "tool-call": {
|
65
|
+
if (!isJSONValue(part.result)) {
|
66
|
+
console.warn(
|
67
|
+
"tool-call result is not JSON! " + JSON.stringify(part),
|
68
|
+
);
|
69
|
+
}
|
70
|
+
return {
|
71
|
+
type: "tool-call",
|
72
|
+
toolCallId: part.toolCallId,
|
73
|
+
toolName: part.toolName,
|
74
|
+
...(JSON.stringify(part.args) === part.argsText
|
75
|
+
? {
|
76
|
+
args: part.args,
|
77
|
+
}
|
78
|
+
: { argsText: part.argsText }),
|
79
|
+
...(part.result
|
80
|
+
? { result: part.result as ReadonlyJSONValue }
|
81
|
+
: {}),
|
82
|
+
...(part.isError ? { isError: true } : {}),
|
83
|
+
};
|
84
|
+
}
|
85
|
+
|
86
|
+
default: {
|
87
|
+
const unhandledType: "ui" | "image" | "file" | "audio" = type;
|
88
|
+
throw new Error(
|
89
|
+
`Content part type not supported by aui/v0: ${unhandledType}`,
|
90
|
+
);
|
91
|
+
}
|
92
|
+
}
|
93
|
+
}),
|
94
|
+
metadata: message.metadata as AuiV0Message["metadata"],
|
95
|
+
...(message.status
|
96
|
+
? {
|
97
|
+
status:
|
98
|
+
message.status?.type === "running"
|
99
|
+
? {
|
100
|
+
type: "incomplete",
|
101
|
+
reason: "cancelled",
|
102
|
+
}
|
103
|
+
: message.status,
|
104
|
+
}
|
105
|
+
: undefined),
|
106
|
+
};
|
107
|
+
};
|
108
|
+
|
109
|
+
export const auiV0Decode = (
|
110
|
+
cloudMessage: CloudMessage & { format: "aui/v0" },
|
111
|
+
): ExportedMessageRepositoryItem => {
|
112
|
+
const payload = cloudMessage.content as unknown as AuiV0Message;
|
113
|
+
const message = fromThreadMessageLike(
|
114
|
+
{
|
115
|
+
id: cloudMessage.id,
|
116
|
+
createdAt: cloudMessage.created_at,
|
117
|
+
...payload,
|
118
|
+
},
|
119
|
+
cloudMessage.id,
|
120
|
+
{
|
121
|
+
type: "complete",
|
122
|
+
reason: "unknown",
|
123
|
+
},
|
124
|
+
);
|
125
|
+
|
126
|
+
return {
|
127
|
+
parentId: cloudMessage.parent_id,
|
128
|
+
message,
|
129
|
+
};
|
130
|
+
};
|
@@ -1,11 +1,21 @@
|
|
1
1
|
"use client";
|
2
2
|
|
3
|
-
import {
|
4
|
-
|
3
|
+
import {
|
4
|
+
FC,
|
5
|
+
PropsWithChildren,
|
6
|
+
useCallback,
|
7
|
+
useEffect,
|
8
|
+
useMemo,
|
9
|
+
useRef,
|
10
|
+
useState,
|
11
|
+
} from "react";
|
5
12
|
import { AssistantCloud } from "./AssistantCloud";
|
6
|
-
import { AssistantRuntime } from "
|
7
|
-
import { RemoteThreadListSubscriber } from "../types";
|
8
|
-
import { toCoreMessages } from "
|
13
|
+
import { AssistantRuntime } from "../api";
|
14
|
+
import { RemoteThreadListSubscriber } from "../runtimes/remote-thread-list/types";
|
15
|
+
import { toCoreMessages } from "../runtimes/edge";
|
16
|
+
import { useRemoteThreadListRuntime } from "../runtimes/remote-thread-list/useRemoteThreadListRuntime";
|
17
|
+
import { RuntimeAdapterProvider } from "../runtimes/adapters/RuntimeAdapterProvider";
|
18
|
+
import { useAssistantCloudThreadHistoryAdapter } from "./AssistantCloudThreadHistoryAdapter";
|
9
19
|
|
10
20
|
type ThreadData = {
|
11
21
|
externalId: string;
|
@@ -104,6 +114,20 @@ export const useCloudThreadListRuntime = (adapter: CloudThreadListAdapter) => {
|
|
104
114
|
subscribers.delete(callback);
|
105
115
|
};
|
106
116
|
},
|
117
|
+
unstable_Provider: useCallback<FC<PropsWithChildren>>(({ children }) => {
|
118
|
+
const history = useAssistantCloudThreadHistoryAdapter({
|
119
|
+
get current() {
|
120
|
+
return adapterRef.current.cloud;
|
121
|
+
},
|
122
|
+
});
|
123
|
+
const adapters = useMemo(() => ({ history }), [history]);
|
124
|
+
|
125
|
+
return (
|
126
|
+
<RuntimeAdapterProvider adapters={adapters}>
|
127
|
+
{children}
|
128
|
+
</RuntimeAdapterProvider>
|
129
|
+
);
|
130
|
+
}, []),
|
107
131
|
});
|
108
132
|
|
109
133
|
return runtime;
|
package/src/index.ts
CHANGED
@@ -2,15 +2,13 @@
|
|
2
2
|
|
3
3
|
import { FC } from "react";
|
4
4
|
import { type AssistantToolProps, useAssistantTool } from "./useAssistantTool";
|
5
|
+
import { ReadonlyJSONObject } from "../utils/json/json-value";
|
5
6
|
|
6
7
|
export type AssistantTool = FC & {
|
7
8
|
unstable_tool: AssistantToolProps<any, any>;
|
8
9
|
};
|
9
10
|
|
10
|
-
export const makeAssistantTool = <
|
11
|
-
TArgs extends Record<string, unknown>,
|
12
|
-
TResult,
|
13
|
-
>(
|
11
|
+
export const makeAssistantTool = <TArgs extends ReadonlyJSONObject, TResult>(
|
14
12
|
tool: AssistantToolProps<TArgs, TResult>,
|
15
13
|
) => {
|
16
14
|
const Tool: AssistantTool = () => {
|
@@ -5,15 +5,13 @@ import {
|
|
5
5
|
type AssistantToolUIProps,
|
6
6
|
useAssistantToolUI,
|
7
7
|
} from "./useAssistantToolUI";
|
8
|
+
import { ReadonlyJSONObject } from "../utils/json/json-value";
|
8
9
|
|
9
10
|
export type AssistantToolUI = FC & {
|
10
11
|
unstable_tool: AssistantToolUIProps<any, any>;
|
11
12
|
};
|
12
13
|
|
13
|
-
export const makeAssistantToolUI = <
|
14
|
-
TArgs extends Record<string, unknown>,
|
15
|
-
TResult,
|
16
|
-
>(
|
14
|
+
export const makeAssistantToolUI = <TArgs extends ReadonlyJSONObject, TResult>(
|
17
15
|
tool: AssistantToolUIProps<TArgs, TResult>,
|
18
16
|
) => {
|
19
17
|
const ToolUI: AssistantToolUI = () => {
|
@@ -7,9 +7,10 @@ import {
|
|
7
7
|
} from "../context/react/AssistantContext";
|
8
8
|
import type { ToolCallContentPartComponent } from "../types/ContentPartComponentTypes";
|
9
9
|
import type { Tool } from "./ModelContextTypes";
|
10
|
+
import { ReadonlyJSONObject } from "../utils/json/json-value";
|
10
11
|
|
11
12
|
export type AssistantToolProps<
|
12
|
-
TArgs extends
|
13
|
+
TArgs extends ReadonlyJSONObject,
|
13
14
|
TResult,
|
14
15
|
> = Tool<TArgs, TResult> & {
|
15
16
|
toolName: string;
|
@@ -17,10 +18,7 @@ export type AssistantToolProps<
|
|
17
18
|
disabled?: boolean | undefined;
|
18
19
|
};
|
19
20
|
|
20
|
-
export const useAssistantTool = <
|
21
|
-
TArgs extends Record<string, unknown>,
|
22
|
-
TResult,
|
23
|
-
>(
|
21
|
+
export const useAssistantTool = <TArgs extends ReadonlyJSONObject, TResult>(
|
24
22
|
tool: AssistantToolProps<TArgs, TResult>,
|
25
23
|
) => {
|
26
24
|
const assistantRuntime = useAssistantRuntime();
|
@@ -3,11 +3,9 @@
|
|
3
3
|
import { useEffect } from "react";
|
4
4
|
import { useToolUIsStore } from "../context/react/AssistantContext";
|
5
5
|
import type { ToolCallContentPartComponent } from "../types/ContentPartComponentTypes";
|
6
|
+
import { ReadonlyJSONObject } from "../utils/json/json-value";
|
6
7
|
|
7
|
-
export type AssistantToolUIProps<
|
8
|
-
TArgs extends Record<string, unknown>,
|
9
|
-
TResult,
|
10
|
-
> = {
|
8
|
+
export type AssistantToolUIProps<TArgs extends ReadonlyJSONObject, TResult> = {
|
11
9
|
toolName: string;
|
12
10
|
render: ToolCallContentPartComponent<TArgs, TResult>;
|
13
11
|
};
|
@@ -3,8 +3,9 @@
|
|
3
3
|
import { FC, useCallback, useEffect, useState } from "react";
|
4
4
|
import { ToolCallContentPartProps } from "../types";
|
5
5
|
import { create } from "zustand";
|
6
|
+
import { ReadonlyJSONObject } from "../utils/json/json-value";
|
6
7
|
|
7
|
-
export const useInlineRender = <TArgs extends
|
8
|
+
export const useInlineRender = <TArgs extends ReadonlyJSONObject, TResult>(
|
8
9
|
toolUI: FC<ToolCallContentPartProps<TArgs, TResult>>,
|
9
10
|
): FC<ToolCallContentPartProps<TArgs, TResult>> => {
|
10
11
|
const [useToolUI] = useState(() => create(() => toolUI));
|
@@ -4,6 +4,7 @@ import {
|
|
4
4
|
LanguageModelV1CallSettingsSchema,
|
5
5
|
} from "../../model-context/ModelContextTypes";
|
6
6
|
import { z } from "zod";
|
7
|
+
import { ReadonlyJSONObject } from "../../utils/json/json-value";
|
7
8
|
|
8
9
|
const LanguageModelV1FunctionToolSchema = z.object({
|
9
10
|
type: z.literal("function"),
|
@@ -42,11 +43,12 @@ const CoreToolCallContentPartSchema = z.object({
|
|
42
43
|
type: z.literal("tool-call"),
|
43
44
|
toolCallId: z.string(),
|
44
45
|
toolName: z.string(),
|
45
|
-
args: z
|
46
|
+
args: z
|
47
|
+
.record(z.unknown())
|
48
|
+
.refine((c): c is ReadonlyJSONObject => c !== undefined),
|
46
49
|
result: z.unknown().optional(),
|
47
50
|
isError: z.boolean().optional(),
|
48
51
|
});
|
49
|
-
// args is required but unknown;
|
50
52
|
|
51
53
|
const CoreUserMessageSchema = z.object({
|
52
54
|
role: z.literal("user"),
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { LanguageModelV1Message } from "@ai-sdk/provider";
|
2
2
|
import { CoreMessage, ToolCallContentPart } from "../../../types";
|
3
3
|
import { Writable } from "stream";
|
4
|
+
import { ReadonlyJSONObject } from "../../../utils/json/json-value";
|
4
5
|
|
5
6
|
type fromLanguageModelMessagesOptions = {
|
6
7
|
mergeSteps: boolean;
|
@@ -76,7 +77,7 @@ export const fromLanguageModelMessages = (
|
|
76
77
|
toolCallId: part.toolCallId,
|
77
78
|
toolName: part.toolName,
|
78
79
|
argsText: JSON.stringify(part.args),
|
79
|
-
args: part.args as
|
80
|
+
args: part.args as ReadonlyJSONObject,
|
80
81
|
} satisfies ToolCallContentPart;
|
81
82
|
}
|
82
83
|
return part;
|
@@ -26,7 +26,7 @@ import { streamPartEncoderStream } from "./streams/utils/streamPartEncoderStream
|
|
26
26
|
import { z } from "zod";
|
27
27
|
|
28
28
|
type FinishResult = {
|
29
|
-
messages: CoreMessage[];
|
29
|
+
messages: readonly CoreMessage[];
|
30
30
|
metadata: {
|
31
31
|
steps: readonly ThreadStep[];
|
32
32
|
};
|
@@ -111,7 +111,7 @@ export const getEdgeRuntimeStream = async ({
|
|
111
111
|
abortSignal,
|
112
112
|
|
113
113
|
...(!!system ? { system } : undefined),
|
114
|
-
messages
|
114
|
+
messages,
|
115
115
|
tools: lmServerTools.concat(clientTools as LanguageModelV1FunctionTool[]),
|
116
116
|
...(toolChoice ? { toolChoice } : undefined),
|
117
117
|
});
|
@@ -201,7 +201,7 @@ export const createEdgeRuntimeAPI = (options: CreateEdgeRuntimeAPIOptions) => ({
|
|
201
201
|
type StreamMessageOptions = LanguageModelV1CallSettings & {
|
202
202
|
model: LanguageModelV1;
|
203
203
|
system?: string;
|
204
|
-
messages: CoreMessage[];
|
204
|
+
messages: readonly CoreMessage[];
|
205
205
|
tools?: LanguageModelV1FunctionTool[];
|
206
206
|
toolChoice?: LanguageModelV1ToolChoice;
|
207
207
|
abortSignal: AbortSignal;
|
@@ -229,7 +229,7 @@ async function streamMessage({
|
|
229
229
|
|
230
230
|
export function convertToLanguageModelPrompt(
|
231
231
|
system: string | undefined,
|
232
|
-
messages: CoreMessage[],
|
232
|
+
messages: readonly CoreMessage[],
|
233
233
|
): LanguageModelV1Prompt {
|
234
234
|
const languageModelMessages: LanguageModelV1Prompt = [];
|
235
235
|
|
@@ -1,4 +1,5 @@
|
|
1
|
-
import {
|
1
|
+
import { LanguageModelV1StreamPart } from "@ai-sdk/provider";
|
2
|
+
import { ReadonlyJSONValue } from "../../../utils/json/json-value";
|
2
3
|
|
3
4
|
export enum AssistantStreamChunkType {
|
4
5
|
TextDelta = "0",
|
@@ -17,8 +18,8 @@ export enum AssistantStreamChunkType {
|
|
17
18
|
|
18
19
|
export type AssistantStreamChunk = {
|
19
20
|
[AssistantStreamChunkType.TextDelta]: string;
|
20
|
-
[AssistantStreamChunkType.Data]:
|
21
|
-
[AssistantStreamChunkType.Annotation]:
|
21
|
+
[AssistantStreamChunkType.Data]: ReadonlyJSONValue[];
|
22
|
+
[AssistantStreamChunkType.Annotation]: ReadonlyJSONValue[];
|
22
23
|
[AssistantStreamChunkType.ToolCall]: {
|
23
24
|
toolCallId: string;
|
24
25
|
toolName: string;
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { CoreChatModelRunResult } from "../../local/ChatModelAdapter";
|
2
|
-
import { parsePartialJson } from "
|
2
|
+
import { parsePartialJson } from "../../../utils/json/parse-partial-json";
|
3
3
|
import { LanguageModelV1StreamPart } from "@ai-sdk/provider";
|
4
4
|
import { ToolResultStreamPart } from "./toolResultStream";
|
5
5
|
import { MessageStatus, ToolCallContentPart } from "../../../types";
|
@@ -1,17 +1,18 @@
|
|
1
1
|
import { Tool } from "../../../model-context/ModelContextTypes";
|
2
|
-
import {
|
2
|
+
import { LanguageModelV1StreamPart } from "@ai-sdk/provider";
|
3
3
|
import { z } from "zod";
|
4
4
|
import sjson from "secure-json-parse";
|
5
|
+
import { ReadonlyJSONValue } from "../../../utils/json/json-value";
|
5
6
|
|
6
7
|
export type ToolResultStreamPart =
|
7
8
|
| LanguageModelV1StreamPart
|
8
9
|
| {
|
9
10
|
type: "annotations";
|
10
|
-
annotations:
|
11
|
+
annotations: ReadonlyJSONValue[];
|
11
12
|
}
|
12
13
|
| {
|
13
14
|
type: "data";
|
14
|
-
data:
|
15
|
+
data: ReadonlyJSONValue[];
|
15
16
|
}
|
16
17
|
| {
|
17
18
|
type: "tool-result";
|
@@ -18,6 +18,8 @@ import {
|
|
18
18
|
CoreToolCallContentPart,
|
19
19
|
ThreadStep,
|
20
20
|
} from "../../types/AssistantTypes";
|
21
|
+
import { ReadonlyJSONValue } from "../../utils/json/json-value";
|
22
|
+
import { parsePartialJson } from "../../utils/json/parse-partial-json";
|
21
23
|
|
22
24
|
export type ThreadMessageLike = {
|
23
25
|
readonly role: "assistant" | "user" | "system";
|
@@ -30,6 +32,14 @@ export type ThreadMessageLike = {
|
|
30
32
|
| Unstable_AudioContentPart
|
31
33
|
| ToolCallContentPart<any, any>
|
32
34
|
| CoreToolCallContentPart<any, any>
|
35
|
+
| {
|
36
|
+
type: "tool-call";
|
37
|
+
toolCallId: string;
|
38
|
+
toolName: string;
|
39
|
+
argsText: string;
|
40
|
+
result?: unknown | undefined;
|
41
|
+
isError?: boolean | undefined;
|
42
|
+
}
|
33
43
|
| UIContentPart
|
34
44
|
)[];
|
35
45
|
readonly id?: string | undefined;
|
@@ -38,8 +48,10 @@ export type ThreadMessageLike = {
|
|
38
48
|
readonly attachments?: readonly CompleteAttachment[] | undefined;
|
39
49
|
readonly metadata?:
|
40
50
|
| {
|
41
|
-
readonly unstable_annotations?:
|
42
|
-
|
51
|
+
readonly unstable_annotations?:
|
52
|
+
| readonly ReadonlyJSONValue[]
|
53
|
+
| undefined;
|
54
|
+
readonly unstable_data?: readonly ReadonlyJSONValue[] | undefined;
|
43
55
|
readonly steps?: readonly ThreadStep[] | undefined;
|
44
56
|
readonly custom?: Record<string, unknown> | undefined;
|
45
57
|
}
|
@@ -88,7 +100,16 @@ export const fromThreadMessageLike = (
|
|
88
100
|
return part;
|
89
101
|
|
90
102
|
case "tool-call": {
|
91
|
-
if ("argsText" in part)
|
103
|
+
if ("argsText" in part) {
|
104
|
+
if ("args" in part) {
|
105
|
+
return part;
|
106
|
+
}
|
107
|
+
|
108
|
+
return {
|
109
|
+
...part,
|
110
|
+
args: parsePartialJson(part.argsText),
|
111
|
+
};
|
112
|
+
}
|
92
113
|
return {
|
93
114
|
...part,
|
94
115
|
argsText: JSON.stringify(part.args),
|
@@ -8,6 +8,7 @@ import type {
|
|
8
8
|
ToolCallContentPart,
|
9
9
|
} from "../../types/AssistantTypes";
|
10
10
|
import type { ModelContext } from "../../model-context/ModelContextTypes";
|
11
|
+
import { ReadonlyJSONValue } from "../../utils/json/json-value";
|
11
12
|
|
12
13
|
export type ChatModelRunUpdate = {
|
13
14
|
readonly content: readonly ThreadAssistantContentPart[];
|
@@ -18,8 +19,8 @@ export type ChatModelRunResult = {
|
|
18
19
|
readonly content?: readonly ThreadAssistantContentPart[] | undefined;
|
19
20
|
readonly status?: MessageStatus | undefined;
|
20
21
|
readonly metadata?: {
|
21
|
-
readonly unstable_annotations?: readonly
|
22
|
-
readonly unstable_data?: readonly
|
22
|
+
readonly unstable_annotations?: readonly ReadonlyJSONValue[] | undefined;
|
23
|
+
readonly unstable_data?: readonly ReadonlyJSONValue[] | undefined;
|
23
24
|
readonly steps?: readonly ThreadStep[] | undefined;
|
24
25
|
readonly custom?: Record<string, unknown> | undefined;
|
25
26
|
};
|
@@ -82,6 +82,21 @@ export class LocalThreadRuntimeCore
|
|
82
82
|
if (hasUpdates) this._notifySubscribers();
|
83
83
|
}
|
84
84
|
|
85
|
+
private _loadPromise: Promise<void> | undefined;
|
86
|
+
public __internal_load() {
|
87
|
+
if (this._loadPromise) return this._loadPromise;
|
88
|
+
|
89
|
+
const promise = this.adapters.history?.load() ?? Promise.resolve(null);
|
90
|
+
|
91
|
+
this._loadPromise = promise.then((repo) => {
|
92
|
+
if (!repo) return;
|
93
|
+
this.repository.import(repo);
|
94
|
+
this._notifySubscribers();
|
95
|
+
});
|
96
|
+
|
97
|
+
return this._loadPromise;
|
98
|
+
}
|
99
|
+
|
85
100
|
public async append(message: AppendMessage): Promise<void> {
|
86
101
|
this.ensureInitialized();
|
87
102
|
|
@@ -89,6 +104,10 @@ export class LocalThreadRuntimeCore
|
|
89
104
|
attachments: message.attachments,
|
90
105
|
});
|
91
106
|
this.repository.addOrUpdateMessage(message.parentId, newMessage);
|
107
|
+
this._options.adapters.history?.append({
|
108
|
+
parentId: message.parentId,
|
109
|
+
message: newMessage,
|
110
|
+
});
|
92
111
|
|
93
112
|
const startRun = message.startRun ?? message.role === "user";
|
94
113
|
if (startRun) {
|
@@ -258,11 +277,28 @@ export class LocalThreadRuntimeCore
|
|
258
277
|
});
|
259
278
|
} else {
|
260
279
|
updateMessage({
|
261
|
-
status: {
|
280
|
+
status: {
|
281
|
+
type: "incomplete",
|
282
|
+
reason: "error",
|
283
|
+
error:
|
284
|
+
e instanceof Error
|
285
|
+
? e.message
|
286
|
+
: `[${typeof e}] ${new String(e).toString()}`,
|
287
|
+
},
|
262
288
|
});
|
263
289
|
|
264
290
|
throw e;
|
265
291
|
}
|
292
|
+
} finally {
|
293
|
+
if (
|
294
|
+
message.status.type === "complete" ||
|
295
|
+
message.status.type === "incomplete"
|
296
|
+
) {
|
297
|
+
await this._options.adapters.history?.append({
|
298
|
+
parentId,
|
299
|
+
message: message,
|
300
|
+
});
|
301
|
+
}
|
266
302
|
}
|
267
303
|
return message;
|
268
304
|
}
|
@@ -9,6 +9,7 @@ import {
|
|
9
9
|
AssistantRuntimeImpl,
|
10
10
|
} from "../../api/AssistantRuntime";
|
11
11
|
import { ThreadRuntimeImpl } from "../../internal";
|
12
|
+
import { useRuntimeAdapters } from "../adapters/RuntimeAdapterProvider";
|
12
13
|
|
13
14
|
export type LocalRuntime = AssistantRuntime & {
|
14
15
|
reset: (options?: Parameters<LocalRuntimeCore["reset"]>[0]) => void;
|
@@ -37,18 +38,24 @@ export const useLocalRuntime = (
|
|
37
38
|
adapter: ChatModelAdapter,
|
38
39
|
{ initialMessages, ...options }: LocalRuntimeOptions = {},
|
39
40
|
) => {
|
40
|
-
const
|
41
|
-
|
42
|
-
|
43
|
-
...options
|
44
|
-
|
45
|
-
|
46
|
-
|
41
|
+
const threadListAdapters = useRuntimeAdapters();
|
42
|
+
const opt = useMemo(
|
43
|
+
() => ({
|
44
|
+
...options,
|
45
|
+
adapters: {
|
46
|
+
...threadListAdapters,
|
47
|
+
...options.adapters,
|
48
|
+
chatModel: adapter,
|
49
|
+
},
|
50
|
+
}),
|
51
|
+
[adapter, options, threadListAdapters],
|
52
|
+
);
|
47
53
|
|
48
54
|
const [runtime] = useState(() => new LocalRuntimeCore(opt, initialMessages));
|
49
55
|
|
50
56
|
useEffect(() => {
|
51
57
|
runtime.threads.getMainThreadRuntimeCore().__internal_setOptions(opt);
|
58
|
+
runtime.threads.getMainThreadRuntimeCore().__internal_load();
|
52
59
|
}, [runtime, opt]);
|
53
60
|
|
54
61
|
return useMemo(() => LocalRuntimeImpl.create(runtime), [runtime]);
|
@@ -465,12 +465,7 @@ export class RemoteThreadListThreadListRuntimeCore
|
|
465
465
|
private async _ensureThreadIsNotMain(threadId: string) {
|
466
466
|
// if thread is main thread, switch to another thread
|
467
467
|
if (threadId === this._mainThreadId) {
|
468
|
-
|
469
|
-
if (lastThreadId) {
|
470
|
-
await this.switchToThread(lastThreadId);
|
471
|
-
} else {
|
472
|
-
await this.switchToNewThread();
|
473
|
-
}
|
468
|
+
await this.switchToNewThread();
|
474
469
|
}
|
475
470
|
}
|
476
471
|
|
@@ -1,5 +1,9 @@
|
|
1
1
|
import type { ReactNode } from "react";
|
2
2
|
import { CompleteAttachment } from "./AttachmentTypes";
|
3
|
+
import {
|
4
|
+
ReadonlyJSONObject,
|
5
|
+
ReadonlyJSONValue,
|
6
|
+
} from "../utils/json/json-value";
|
3
7
|
|
4
8
|
export type MessageRole = "user" | "assistant" | "system";
|
5
9
|
|
@@ -70,7 +74,7 @@ export type UIContentPart = {
|
|
70
74
|
};
|
71
75
|
|
72
76
|
export type CoreToolCallContentPart<
|
73
|
-
TArgs extends
|
77
|
+
TArgs extends ReadonlyJSONObject = ReadonlyJSONObject,
|
74
78
|
TResult = unknown,
|
75
79
|
> = {
|
76
80
|
readonly type: "tool-call";
|
@@ -82,7 +86,7 @@ export type CoreToolCallContentPart<
|
|
82
86
|
};
|
83
87
|
|
84
88
|
export type ToolCallContentPart<
|
85
|
-
TArgs extends
|
89
|
+
TArgs extends ReadonlyJSONObject = ReadonlyJSONObject,
|
86
90
|
TResult = unknown,
|
87
91
|
> = CoreToolCallContentPart<TArgs, TResult> & {
|
88
92
|
readonly argsText: string;
|
@@ -160,7 +164,7 @@ export type MessageStatus =
|
|
160
164
|
| "content-filter"
|
161
165
|
| "other"
|
162
166
|
| "error";
|
163
|
-
readonly error?:
|
167
|
+
readonly error?: ReadonlyJSONValue;
|
164
168
|
};
|
165
169
|
|
166
170
|
export type ThreadSystemMessage = MessageCommonProps & {
|
@@ -185,8 +189,8 @@ export type ThreadAssistantMessage = MessageCommonProps & {
|
|
185
189
|
readonly content: readonly ThreadAssistantContentPart[];
|
186
190
|
readonly status: MessageStatus;
|
187
191
|
readonly metadata: {
|
188
|
-
readonly unstable_annotations: readonly
|
189
|
-
readonly unstable_data: readonly
|
192
|
+
readonly unstable_annotations: readonly ReadonlyJSONValue[];
|
193
|
+
readonly unstable_data: readonly ReadonlyJSONValue[];
|
190
194
|
readonly steps: readonly ThreadStep[];
|
191
195
|
readonly custom: Record<string, unknown>;
|
192
196
|
};
|
@@ -211,8 +215,8 @@ export type AppendMessage = CoreMessage & {
|
|
211
215
|
type BaseThreadMessage = {
|
212
216
|
readonly status?: ThreadAssistantMessage["status"];
|
213
217
|
readonly metadata: {
|
214
|
-
readonly unstable_annotations?: readonly
|
215
|
-
readonly unstable_data?: readonly
|
218
|
+
readonly unstable_annotations?: readonly ReadonlyJSONValue[];
|
219
|
+
readonly unstable_data?: readonly ReadonlyJSONValue[];
|
216
220
|
readonly steps?: readonly ThreadStep[];
|
217
221
|
readonly custom: Record<string, unknown>;
|
218
222
|
};
|