@assistant-ui/react 0.7.27 → 0.7.29
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/context/providers/AssistantRuntimeProvider.d.ts.map +1 -1
- package/dist/context/providers/AssistantRuntimeProvider.js +12 -9
- package/dist/context/providers/AssistantRuntimeProvider.js.map +1 -1
- package/dist/context/providers/AssistantRuntimeProvider.mjs +14 -11
- package/dist/context/providers/AssistantRuntimeProvider.mjs.map +1 -1
- package/dist/context/react/ThreadListItemContext.d.ts +0 -5
- package/dist/context/react/ThreadListItemContext.d.ts.map +1 -1
- package/dist/context/react/ThreadListItemContext.js +6 -5
- package/dist/context/react/ThreadListItemContext.js.map +1 -1
- package/dist/context/react/ThreadListItemContext.mjs +5 -3
- package/dist/context/react/ThreadListItemContext.mjs.map +1 -1
- package/dist/context/react/index.d.ts +1 -0
- package/dist/context/react/index.d.ts.map +1 -1
- package/dist/context/react/index.js +5 -0
- package/dist/context/react/index.js.map +1 -1
- package/dist/context/react/index.mjs +6 -0
- package/dist/context/react/index.mjs.map +1 -1
- package/dist/runtimes/core/AssistantRuntimeCore.d.ts +4 -5
- package/dist/runtimes/core/AssistantRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/core/AssistantRuntimeCore.js.map +1 -1
- package/dist/runtimes/core/BaseAssistantRuntimeCore.d.ts +0 -2
- package/dist/runtimes/core/BaseAssistantRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/core/BaseAssistantRuntimeCore.js.map +1 -1
- package/dist/runtimes/core/BaseAssistantRuntimeCore.mjs.map +1 -1
- package/dist/runtimes/core/ThreadRuntimeCore.d.ts +0 -4
- package/dist/runtimes/core/ThreadRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/core/ThreadRuntimeCore.js.map +1 -1
- package/dist/runtimes/dangerous-in-browser/DangerousInBrowserAdapter.d.ts +1 -1
- package/dist/runtimes/edge/EdgeRuntimeRequestOptions.d.ts +26 -26
- package/dist/runtimes/edge/EdgeRuntimeRequestOptions.d.ts.map +1 -1
- package/dist/runtimes/edge/EdgeRuntimeRequestOptions.js +5 -5
- package/dist/runtimes/edge/EdgeRuntimeRequestOptions.js.map +1 -1
- package/dist/runtimes/edge/EdgeRuntimeRequestOptions.mjs +5 -5
- package/dist/runtimes/edge/EdgeRuntimeRequestOptions.mjs.map +1 -1
- package/dist/runtimes/edge/converters/fromCoreMessage.js +1 -1
- package/dist/runtimes/edge/converters/fromCoreMessage.js.map +1 -1
- package/dist/runtimes/edge/converters/fromCoreMessage.mjs +1 -1
- package/dist/runtimes/edge/converters/fromCoreMessage.mjs.map +1 -1
- package/dist/runtimes/edge/converters/fromLanguageModelMessages.d.ts.map +1 -1
- package/dist/runtimes/edge/converters/fromLanguageModelMessages.js +4 -1
- package/dist/runtimes/edge/converters/fromLanguageModelMessages.js.map +1 -1
- package/dist/runtimes/edge/converters/fromLanguageModelMessages.mjs +4 -1
- package/dist/runtimes/edge/converters/fromLanguageModelMessages.mjs.map +1 -1
- package/dist/runtimes/edge/createEdgeRuntimeAPI.d.ts.map +1 -1
- package/dist/runtimes/edge/createEdgeRuntimeAPI.js +3 -4
- package/dist/runtimes/edge/createEdgeRuntimeAPI.js.map +1 -1
- package/dist/runtimes/edge/createEdgeRuntimeAPI.mjs +3 -4
- package/dist/runtimes/edge/createEdgeRuntimeAPI.mjs.map +1 -1
- package/dist/runtimes/edge/streams/AssistantStreamChunkType.d.ts +4 -2
- package/dist/runtimes/edge/streams/AssistantStreamChunkType.d.ts.map +1 -1
- package/dist/runtimes/edge/streams/AssistantStreamChunkType.js +1 -0
- package/dist/runtimes/edge/streams/AssistantStreamChunkType.js.map +1 -1
- package/dist/runtimes/edge/streams/AssistantStreamChunkType.mjs +1 -0
- package/dist/runtimes/edge/streams/AssistantStreamChunkType.mjs.map +1 -1
- package/dist/runtimes/edge/streams/assistantDecoderStream.d.ts.map +1 -1
- package/dist/runtimes/edge/streams/assistantDecoderStream.js +7 -1
- package/dist/runtimes/edge/streams/assistantDecoderStream.js.map +1 -1
- package/dist/runtimes/edge/streams/assistantDecoderStream.mjs +7 -1
- package/dist/runtimes/edge/streams/assistantDecoderStream.mjs.map +1 -1
- package/dist/runtimes/edge/streams/assistantEncoderStream.d.ts.map +1 -1
- package/dist/runtimes/edge/streams/assistantEncoderStream.js +7 -0
- package/dist/runtimes/edge/streams/assistantEncoderStream.js.map +1 -1
- package/dist/runtimes/edge/streams/assistantEncoderStream.mjs +7 -0
- package/dist/runtimes/edge/streams/assistantEncoderStream.mjs.map +1 -1
- package/dist/runtimes/edge/streams/runResultStream.d.ts +2 -2
- package/dist/runtimes/edge/streams/runResultStream.d.ts.map +1 -1
- package/dist/runtimes/edge/streams/runResultStream.js +17 -2
- package/dist/runtimes/edge/streams/runResultStream.js.map +1 -1
- package/dist/runtimes/edge/streams/runResultStream.mjs +17 -2
- package/dist/runtimes/edge/streams/runResultStream.mjs.map +1 -1
- package/dist/runtimes/edge/streams/toolResultStream.d.ts +4 -1
- package/dist/runtimes/edge/streams/toolResultStream.d.ts.map +1 -1
- package/dist/runtimes/edge/streams/toolResultStream.js +1 -0
- package/dist/runtimes/edge/streams/toolResultStream.js.map +1 -1
- package/dist/runtimes/edge/streams/toolResultStream.mjs +1 -0
- package/dist/runtimes/edge/streams/toolResultStream.mjs.map +1 -1
- package/dist/runtimes/external-store/ExternalStoreAdapter.d.ts +0 -6
- package/dist/runtimes/external-store/ExternalStoreAdapter.d.ts.map +1 -1
- package/dist/runtimes/external-store/ExternalStoreAdapter.js.map +1 -1
- package/dist/runtimes/external-store/ExternalStoreRuntimeCore.d.ts +0 -3
- package/dist/runtimes/external-store/ExternalStoreRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/external-store/ExternalStoreRuntimeCore.js +0 -15
- package/dist/runtimes/external-store/ExternalStoreRuntimeCore.js.map +1 -1
- package/dist/runtimes/external-store/ExternalStoreRuntimeCore.mjs +0 -15
- package/dist/runtimes/external-store/ExternalStoreRuntimeCore.mjs.map +1 -1
- package/dist/runtimes/external-store/ThreadMessageLike.d.ts +4 -3
- package/dist/runtimes/external-store/ThreadMessageLike.d.ts.map +1 -1
- package/dist/runtimes/external-store/ThreadMessageLike.js +1 -0
- package/dist/runtimes/external-store/ThreadMessageLike.js.map +1 -1
- package/dist/runtimes/external-store/ThreadMessageLike.mjs +1 -0
- package/dist/runtimes/external-store/ThreadMessageLike.mjs.map +1 -1
- package/dist/runtimes/external-store/external-message-converter.js.map +1 -1
- package/dist/runtimes/external-store/external-message-converter.mjs.map +1 -1
- package/dist/runtimes/local/ChatModelAdapter.d.ts +5 -1
- package/dist/runtimes/local/ChatModelAdapter.d.ts.map +1 -1
- package/dist/runtimes/local/ChatModelAdapter.js.map +1 -1
- package/dist/runtimes/local/LocalThreadRuntimeCore.js +1 -1
- package/dist/runtimes/local/LocalThreadRuntimeCore.js.map +1 -1
- package/dist/runtimes/local/LocalThreadRuntimeCore.mjs +1 -1
- package/dist/runtimes/local/LocalThreadRuntimeCore.mjs.map +1 -1
- package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts +3 -3
- package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js +13 -14
- package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.js.map +1 -1
- package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.mjs +11 -14
- package/dist/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.mjs.map +1 -1
- package/dist/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.d.ts +2 -2
- package/dist/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.js.map +1 -1
- package/dist/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.mjs.map +1 -1
- package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.d.ts.map +1 -1
- package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.js +2 -2
- package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.js.map +1 -1
- package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.mjs +2 -2
- package/dist/runtimes/remote-thread-list/useRemoteThreadListRuntime.mjs.map +1 -1
- package/dist/types/AssistantTypes.d.ts +10 -8
- package/dist/types/AssistantTypes.d.ts.map +1 -1
- package/dist/types/AssistantTypes.js.map +1 -1
- package/package.json +3 -3
- package/src/context/providers/AssistantRuntimeProvider.tsx +9 -12
- package/src/context/react/ThreadListItemContext.ts +4 -2
- package/src/context/react/index.ts +6 -0
- package/src/runtimes/core/AssistantRuntimeCore.tsx +4 -5
- package/src/runtimes/core/BaseAssistantRuntimeCore.tsx +0 -4
- package/src/runtimes/core/ThreadRuntimeCore.tsx +5 -4
- package/src/runtimes/edge/EdgeRuntimeRequestOptions.ts +7 -5
- package/src/runtimes/edge/converters/fromCoreMessage.ts +1 -1
- package/src/runtimes/edge/converters/fromLanguageModelMessages.ts +4 -1
- package/src/runtimes/edge/createEdgeRuntimeAPI.ts +6 -11
- package/src/runtimes/edge/streams/AssistantStreamChunkType.ts +4 -3
- package/src/runtimes/edge/streams/assistantDecoderStream.ts +8 -1
- package/src/runtimes/edge/streams/assistantEncoderStream.ts +8 -0
- package/src/runtimes/edge/streams/runResultStream.ts +38 -15
- package/src/runtimes/edge/streams/toolResultStream.ts +6 -1
- package/src/runtimes/external-store/ExternalStoreAdapter.tsx +0 -8
- package/src/runtimes/external-store/ExternalStoreRuntimeCore.tsx +0 -20
- package/src/runtimes/external-store/ThreadMessageLike.tsx +5 -3
- package/src/runtimes/external-store/external-message-converter.tsx +1 -1
- package/src/runtimes/local/ChatModelAdapter.tsx +7 -0
- package/src/runtimes/local/LocalThreadRuntimeCore.tsx +1 -1
- package/src/runtimes/remote-thread-list/RemoteThreadListThreadListRuntimeCore.tsx +11 -15
- package/src/runtimes/remote-thread-list/cloud/useCloudThreadListRuntime.tsx +1 -1
- package/src/runtimes/remote-thread-list/useRemoteThreadListRuntime.tsx +7 -3
- package/src/types/AssistantTypes.ts +10 -8
@@ -71,14 +71,14 @@ export type MessageStatus = {
|
|
71
71
|
};
|
72
72
|
export type ThreadSystemMessage = MessageCommonProps & {
|
73
73
|
readonly role: "system";
|
74
|
-
readonly content: [TextContentPart];
|
74
|
+
readonly content: readonly [TextContentPart];
|
75
75
|
readonly metadata: {
|
76
76
|
readonly custom: Record<string, unknown>;
|
77
77
|
};
|
78
78
|
};
|
79
79
|
export type ThreadUserMessage = MessageCommonProps & {
|
80
80
|
readonly role: "user";
|
81
|
-
readonly content: ThreadUserContentPart[];
|
81
|
+
readonly content: readonly ThreadUserContentPart[];
|
82
82
|
readonly attachments: readonly CompleteAttachment[];
|
83
83
|
readonly metadata: {
|
84
84
|
readonly custom: Record<string, unknown>;
|
@@ -86,10 +86,11 @@ export type ThreadUserMessage = MessageCommonProps & {
|
|
86
86
|
};
|
87
87
|
export type ThreadAssistantMessage = MessageCommonProps & {
|
88
88
|
readonly role: "assistant";
|
89
|
-
readonly content: ThreadAssistantContentPart[];
|
89
|
+
readonly content: readonly ThreadAssistantContentPart[];
|
90
90
|
readonly status: MessageStatus;
|
91
91
|
readonly metadata: {
|
92
|
-
readonly
|
92
|
+
readonly unstable_data: readonly unknown[];
|
93
|
+
readonly steps: readonly ThreadStep[];
|
93
94
|
readonly custom: Record<string, unknown>;
|
94
95
|
};
|
95
96
|
};
|
@@ -106,7 +107,8 @@ export type AppendMessage = CoreMessage & {
|
|
106
107
|
type BaseThreadMessage = {
|
107
108
|
readonly status?: ThreadAssistantMessage["status"];
|
108
109
|
readonly metadata: {
|
109
|
-
readonly
|
110
|
+
readonly unstable_data?: readonly unknown[];
|
111
|
+
readonly steps?: readonly ThreadStep[];
|
110
112
|
readonly custom: Record<string, unknown>;
|
111
113
|
};
|
112
114
|
readonly attachments?: ThreadUserMessage["attachments"];
|
@@ -117,15 +119,15 @@ export type CoreUserContentPart = TextContentPart | ImageContentPart | Unstable_
|
|
117
119
|
export type CoreAssistantContentPart = TextContentPart | CoreToolCallContentPart;
|
118
120
|
export type CoreSystemMessage = {
|
119
121
|
role: "system";
|
120
|
-
content: [TextContentPart];
|
122
|
+
content: readonly [TextContentPart];
|
121
123
|
};
|
122
124
|
export type CoreUserMessage = {
|
123
125
|
role: "user";
|
124
|
-
content: CoreUserContentPart[];
|
126
|
+
content: readonly CoreUserContentPart[];
|
125
127
|
};
|
126
128
|
export type CoreAssistantMessage = {
|
127
129
|
role: "assistant";
|
128
|
-
content: CoreAssistantContentPart[];
|
130
|
+
content: readonly CoreAssistantContentPart[];
|
129
131
|
};
|
130
132
|
export type CoreMessage = CoreSystemMessage | CoreUserMessage | CoreAssistantMessage;
|
131
133
|
export {};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"AssistantTypes.d.ts","sourceRoot":"","sources":["../../src/types/AssistantTypes.ts"],"names":[],"mappings":"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
|
1
|
+
{"version":3,"file":"AssistantTypes.d.ts","sourceRoot":"","sources":["../../src/types/AssistantTypes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE1D,MAAM,MAAM,eAAe,GAAG;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,KAAK,EAAE;QACd,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,MAAM,EAAE,KAAK,GAAG,KAAK,CAAC;KAChC,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,uBAAuB,CACjC,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EACxE,OAAO,GAAG,OAAO,IACf;IACF,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;IACrB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CACxC,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAC7B,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EACxE,OAAO,GAAG,OAAO,IACf,uBAAuB,CAAC,KAAK,EAAE,OAAO,CAAC,GAAG;IAC5C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAC7B,eAAe,GACf,gBAAgB,GAChB,yBAAyB,GACzB,aAAa,CAAC;AAElB,MAAM,MAAM,0BAA0B,GAClC,eAAe,GACf,mBAAmB,GACnB,aAAa,CAAC;AAElB,KAAK,kBAAkB,GAAG;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG;IACvB,QAAQ,CAAC,KAAK,CAAC,EACX;QACE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;QAC9B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;KACnC,GACD,SAAS,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,iBAAiB,GACzB;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;CAC1B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;CAC3B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,MAAM,EACX,WAAW,GACX,QAAQ,GACR,gBAAgB,GAChB,OAAO,GACP,OAAO,CAAC;IACZ,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEN,MAAM,MAAM,yBAAyB,GACjC;IACE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;CAC/B,GACD,iBAAiB,CAAC;AAEtB,MAAM,MAAM,aAAa,GACrB;IACE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;CAC1B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,iBAAiB,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;CAC/B,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CACrC,GACD;IACE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAC;IAC5B,QAAQ,CAAC,MAAM,EACX,WAAW,GACX,YAAY,GACZ,QAAQ,GACR,gBAAgB,GAChB,OAAO,GACP,OAAO,CAAC;IACZ,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAEN,MAAM,MAAM,mBAAmB,GAAG,kBAAkB,GAAG;IACrD,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;IAC7C,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC1C,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,GAAG;IACnD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACnD,QAAQ,CAAC,WAAW,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACpD,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC1C,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG,kBAAkB,GAAG;IACxD,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,0BAA0B,EAAE,CAAC;IACxD,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,aAAa,EAAE,SAAS,OAAO,EAAE,CAAC;QAC3C,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;QACtC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC1C,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IAEtB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG;IACxC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC3C,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,mCAAmC;IACnC,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CACnC,CAAC;AAEF,KAAK,iBAAiB,GAAG;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,sBAAsB,CAAC,QAAQ,CAAC,CAAC;IACnD,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,aAAa,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;QAC5C,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,UAAU,EAAE,CAAC;QACvC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC1C,CAAC;IACF,QAAQ,CAAC,WAAW,CAAC,EAAE,iBAAiB,CAAC,aAAa,CAAC,CAAC;CACzD,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,iBAAiB,GAC3C,CAAC,mBAAmB,GAAG,iBAAiB,GAAG,sBAAsB,CAAC,CAAC;AAErE,oDAAoD;AAEpD,MAAM,MAAM,mBAAmB,GAC3B,eAAe,GACf,gBAAgB,GAChB,yBAAyB,CAAC;AAC9B,MAAM,MAAM,wBAAwB,GAChC,eAAe,GACf,uBAAuB,CAAC;AAE5B,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,SAAS,CAAC,eAAe,CAAC,CAAC;CACrC,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,SAAS,mBAAmB,EAAE,CAAC;CACzC,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,SAAS,wBAAwB,EAAE,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,WAAW,GACnB,iBAAiB,GACjB,eAAe,GACf,oBAAoB,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/types/AssistantTypes.ts"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { CompleteAttachment } from \"./AttachmentTypes\";\n\nexport type MessageRole = \"user\" | \"assistant\" | \"system\";\n\nexport type TextContentPart = {\n readonly type: \"text\";\n readonly text: string;\n};\n\nexport type ImageContentPart = {\n readonly type: \"image\";\n readonly image: string;\n};\n\nexport type Unstable_AudioContentPart = {\n readonly type: \"audio\";\n readonly audio: {\n readonly data: string;\n readonly format: \"mp3\" | \"wav\";\n };\n};\n\nexport type UIContentPart = {\n readonly type: \"ui\";\n readonly display: ReactNode;\n};\n\nexport type CoreToolCallContentPart<\n TArgs extends Record<string, unknown> = Record<string | number, unknown>,\n TResult = unknown,\n> = {\n readonly type: \"tool-call\";\n readonly toolCallId: string;\n readonly toolName: string;\n readonly args: TArgs;\n readonly result?: TResult | undefined;\n readonly isError?: boolean | undefined;\n};\n\nexport type ToolCallContentPart<\n TArgs extends Record<string, unknown> = Record<string | number, unknown>,\n TResult = unknown,\n> = CoreToolCallContentPart<TArgs, TResult> & {\n readonly argsText: string;\n};\n\nexport type ThreadUserContentPart =\n | TextContentPart\n | ImageContentPart\n | Unstable_AudioContentPart\n | UIContentPart;\n\nexport type ThreadAssistantContentPart =\n | TextContentPart\n | ToolCallContentPart\n | UIContentPart;\n\ntype MessageCommonProps = {\n readonly id: string;\n readonly createdAt: Date;\n};\n\nexport type ThreadStep = {\n readonly usage?:\n | {\n readonly promptTokens: number;\n readonly completionTokens: number;\n }\n | undefined;\n};\n\nexport type ContentPartStatus =\n | {\n readonly type: \"running\";\n }\n | {\n readonly type: \"complete\";\n }\n | {\n readonly type: \"incomplete\";\n readonly reason:\n | \"cancelled\"\n | \"length\"\n | \"content-filter\"\n | \"other\"\n | \"error\";\n readonly error?: unknown;\n };\n\nexport type ToolCallContentPartStatus =\n | {\n readonly type: \"requires-action\";\n readonly reason: \"tool-calls\";\n }\n | ContentPartStatus;\n\nexport type MessageStatus =\n | {\n readonly type: \"running\";\n }\n | {\n readonly type: \"requires-action\";\n readonly reason: \"tool-calls\";\n }\n | {\n readonly type: \"complete\";\n readonly reason: \"stop\" | \"unknown\";\n }\n | {\n readonly type: \"incomplete\";\n readonly reason:\n | \"cancelled\"\n | \"tool-calls\"\n | \"length\"\n | \"content-filter\"\n | \"other\"\n | \"error\";\n readonly error?: unknown;\n };\n\nexport type ThreadSystemMessage = MessageCommonProps & {\n readonly role: \"system\";\n readonly content: [TextContentPart];\n readonly metadata: {\n readonly custom: Record<string, unknown>;\n };\n};\n\nexport type ThreadUserMessage = MessageCommonProps & {\n readonly role: \"user\";\n readonly content: ThreadUserContentPart[];\n readonly attachments: readonly CompleteAttachment[];\n readonly metadata: {\n readonly custom: Record<string, unknown>;\n };\n};\n\nexport type ThreadAssistantMessage = MessageCommonProps & {\n readonly role: \"assistant\";\n readonly content: ThreadAssistantContentPart[];\n readonly status: MessageStatus;\n readonly metadata: {\n readonly steps: ThreadStep[];\n readonly custom: Record<string, unknown>;\n };\n};\n\nexport type RunConfig = {\n // TODO allow user customization via global type overrides\n readonly custom?: Record<string, unknown>;\n};\n\nexport type AppendMessage = CoreMessage & {\n parentId: string | null;\n attachments: readonly CompleteAttachment[];\n startRun?: boolean | undefined;\n /** TODO: make required in 0.8.0 */\n runConfig?: RunConfig | undefined;\n};\n\ntype BaseThreadMessage = {\n readonly status?: ThreadAssistantMessage[\"status\"];\n readonly metadata: {\n readonly steps?: ThreadStep[];\n readonly custom: Record<string, unknown>;\n };\n readonly attachments?: ThreadUserMessage[\"attachments\"];\n};\n\nexport type ThreadMessage = BaseThreadMessage &\n (ThreadSystemMessage | ThreadUserMessage | ThreadAssistantMessage);\n\n/** Core Message Types (without UI content parts) */\n\nexport type CoreUserContentPart =\n | TextContentPart\n | ImageContentPart\n | Unstable_AudioContentPart;\nexport type CoreAssistantContentPart =\n | TextContentPart\n | CoreToolCallContentPart;\n\nexport type CoreSystemMessage = {\n role: \"system\";\n content: [TextContentPart];\n};\n\nexport type CoreUserMessage = {\n role: \"user\";\n content: CoreUserContentPart[];\n};\n\nexport type CoreAssistantMessage = {\n role: \"assistant\";\n content: CoreAssistantContentPart[];\n};\n\nexport type CoreMessage =\n | CoreSystemMessage\n | CoreUserMessage\n | CoreAssistantMessage;\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
|
1
|
+
{"version":3,"sources":["../../src/types/AssistantTypes.ts"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { CompleteAttachment } from \"./AttachmentTypes\";\n\nexport type MessageRole = \"user\" | \"assistant\" | \"system\";\n\nexport type TextContentPart = {\n readonly type: \"text\";\n readonly text: string;\n};\n\nexport type ImageContentPart = {\n readonly type: \"image\";\n readonly image: string;\n};\n\nexport type Unstable_AudioContentPart = {\n readonly type: \"audio\";\n readonly audio: {\n readonly data: string;\n readonly format: \"mp3\" | \"wav\";\n };\n};\n\nexport type UIContentPart = {\n readonly type: \"ui\";\n readonly display: ReactNode;\n};\n\nexport type CoreToolCallContentPart<\n TArgs extends Record<string, unknown> = Record<string | number, unknown>,\n TResult = unknown,\n> = {\n readonly type: \"tool-call\";\n readonly toolCallId: string;\n readonly toolName: string;\n readonly args: TArgs;\n readonly result?: TResult | undefined;\n readonly isError?: boolean | undefined;\n};\n\nexport type ToolCallContentPart<\n TArgs extends Record<string, unknown> = Record<string | number, unknown>,\n TResult = unknown,\n> = CoreToolCallContentPart<TArgs, TResult> & {\n readonly argsText: string;\n};\n\nexport type ThreadUserContentPart =\n | TextContentPart\n | ImageContentPart\n | Unstable_AudioContentPart\n | UIContentPart;\n\nexport type ThreadAssistantContentPart =\n | TextContentPart\n | ToolCallContentPart\n | UIContentPart;\n\ntype MessageCommonProps = {\n readonly id: string;\n readonly createdAt: Date;\n};\n\nexport type ThreadStep = {\n readonly usage?:\n | {\n readonly promptTokens: number;\n readonly completionTokens: number;\n }\n | undefined;\n};\n\nexport type ContentPartStatus =\n | {\n readonly type: \"running\";\n }\n | {\n readonly type: \"complete\";\n }\n | {\n readonly type: \"incomplete\";\n readonly reason:\n | \"cancelled\"\n | \"length\"\n | \"content-filter\"\n | \"other\"\n | \"error\";\n readonly error?: unknown;\n };\n\nexport type ToolCallContentPartStatus =\n | {\n readonly type: \"requires-action\";\n readonly reason: \"tool-calls\";\n }\n | ContentPartStatus;\n\nexport type MessageStatus =\n | {\n readonly type: \"running\";\n }\n | {\n readonly type: \"requires-action\";\n readonly reason: \"tool-calls\";\n }\n | {\n readonly type: \"complete\";\n readonly reason: \"stop\" | \"unknown\";\n }\n | {\n readonly type: \"incomplete\";\n readonly reason:\n | \"cancelled\"\n | \"tool-calls\"\n | \"length\"\n | \"content-filter\"\n | \"other\"\n | \"error\";\n readonly error?: unknown;\n };\n\nexport type ThreadSystemMessage = MessageCommonProps & {\n readonly role: \"system\";\n readonly content: readonly [TextContentPart];\n readonly metadata: {\n readonly custom: Record<string, unknown>;\n };\n};\n\nexport type ThreadUserMessage = MessageCommonProps & {\n readonly role: \"user\";\n readonly content: readonly ThreadUserContentPart[];\n readonly attachments: readonly CompleteAttachment[];\n readonly metadata: {\n readonly custom: Record<string, unknown>;\n };\n};\n\nexport type ThreadAssistantMessage = MessageCommonProps & {\n readonly role: \"assistant\";\n readonly content: readonly ThreadAssistantContentPart[];\n readonly status: MessageStatus;\n readonly metadata: {\n readonly unstable_data: readonly unknown[];\n readonly steps: readonly ThreadStep[];\n readonly custom: Record<string, unknown>;\n };\n};\n\nexport type RunConfig = {\n // TODO allow user customization via global type overrides\n readonly custom?: Record<string, unknown>;\n};\n\nexport type AppendMessage = CoreMessage & {\n parentId: string | null;\n attachments: readonly CompleteAttachment[];\n startRun?: boolean | undefined;\n /** TODO: make required in 0.8.0 */\n runConfig?: RunConfig | undefined;\n};\n\ntype BaseThreadMessage = {\n readonly status?: ThreadAssistantMessage[\"status\"];\n readonly metadata: {\n readonly unstable_data?: readonly unknown[];\n readonly steps?: readonly ThreadStep[];\n readonly custom: Record<string, unknown>;\n };\n readonly attachments?: ThreadUserMessage[\"attachments\"];\n};\n\nexport type ThreadMessage = BaseThreadMessage &\n (ThreadSystemMessage | ThreadUserMessage | ThreadAssistantMessage);\n\n/** Core Message Types (without UI content parts) */\n\nexport type CoreUserContentPart =\n | TextContentPart\n | ImageContentPart\n | Unstable_AudioContentPart;\nexport type CoreAssistantContentPart =\n | TextContentPart\n | CoreToolCallContentPart;\n\nexport type CoreSystemMessage = {\n role: \"system\";\n content: readonly [TextContentPart];\n};\n\nexport type CoreUserMessage = {\n role: \"user\";\n content: readonly CoreUserContentPart[];\n};\n\nexport type CoreAssistantMessage = {\n role: \"assistant\";\n content: readonly CoreAssistantContentPart[];\n};\n\nexport type CoreMessage =\n | CoreSystemMessage\n | CoreUserMessage\n | CoreAssistantMessage;\n"],"mappings":";;;;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
|
package/package.json
CHANGED
@@ -29,7 +29,7 @@
|
|
29
29
|
"conversational-ui",
|
30
30
|
"conversational-ai"
|
31
31
|
],
|
32
|
-
"version": "0.7.
|
32
|
+
"version": "0.7.29",
|
33
33
|
"license": "MIT",
|
34
34
|
"exports": {
|
35
35
|
".": {
|
@@ -120,9 +120,9 @@
|
|
120
120
|
"tailwindcss-animate": "^1.0.7",
|
121
121
|
"tsup": "8.3.5",
|
122
122
|
"tsx": "^4.19.2",
|
123
|
-
"@assistant-ui/tailwindcss-transformer": "0.1.0",
|
124
123
|
"@assistant-ui/tsbuildutils": "^0.0.1",
|
125
|
-
"@assistant-ui/tsconfig": "0.0.0"
|
124
|
+
"@assistant-ui/tsconfig": "0.0.0",
|
125
|
+
"@assistant-ui/tailwindcss-transformer": "0.1.0"
|
126
126
|
},
|
127
127
|
"publishConfig": {
|
128
128
|
"access": "public",
|
@@ -1,7 +1,7 @@
|
|
1
1
|
"use client";
|
2
2
|
|
3
3
|
import type { FC, PropsWithChildren } from "react";
|
4
|
-
import {
|
4
|
+
import { memo, useEffect, useMemo, useState } from "react";
|
5
5
|
import { AssistantContext } from "../react/AssistantContext";
|
6
6
|
import { makeAssistantToolUIsStore } from "../stores/AssistantToolUIs";
|
7
7
|
import { ThreadRuntimeProvider } from "./ThreadRuntimeProvider";
|
@@ -47,9 +47,7 @@ const useThreadListStore = (runtime: AssistantRuntime) => {
|
|
47
47
|
};
|
48
48
|
|
49
49
|
const getRenderComponent = (runtime: AssistantRuntime) => {
|
50
|
-
return (
|
51
|
-
(runtime as { _core?: AssistantRuntimeCore })._core?.Provider ?? Fragment
|
52
|
-
);
|
50
|
+
return (runtime as { _core?: AssistantRuntimeCore })._core?.RenderComponent;
|
53
51
|
};
|
54
52
|
|
55
53
|
export const AssistantRuntimeProviderImpl: FC<
|
@@ -70,14 +68,13 @@ export const AssistantRuntimeProviderImpl: FC<
|
|
70
68
|
|
71
69
|
return (
|
72
70
|
<AssistantContext.Provider value={context}>
|
73
|
-
<RenderComponent
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
</RenderComponent>
|
71
|
+
{RenderComponent && <RenderComponent />}
|
72
|
+
<ThreadRuntimeProvider
|
73
|
+
runtime={runtime.thread}
|
74
|
+
listItemRuntime={runtime.threadList.mainItem}
|
75
|
+
>
|
76
|
+
{children}
|
77
|
+
</ThreadRuntimeProvider>
|
81
78
|
</AssistantContext.Provider>
|
82
79
|
);
|
83
80
|
};
|
@@ -35,5 +35,7 @@ export function useThreadListItemRuntime(options?: {
|
|
35
35
|
return context.useThreadListItemRuntime();
|
36
36
|
}
|
37
37
|
|
38
|
-
export const { useThreadListItem
|
39
|
-
|
38
|
+
export const { useThreadListItem } = createContextStoreHook(
|
39
|
+
useThreadListItemContext,
|
40
|
+
"useThreadListItem",
|
41
|
+
);
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import { ComponentType
|
1
|
+
import { ComponentType } from "react";
|
2
2
|
import type { ModelConfigProvider } from "../../types/ModelConfigTypes";
|
3
3
|
import type { Unsubscribe } from "../../types/Unsubscribe";
|
4
4
|
import { ThreadListRuntimeCore } from "./ThreadListRuntimeCore";
|
@@ -9,11 +9,10 @@ export type AssistantRuntimeCore = {
|
|
9
9
|
registerModelConfigProvider: (provider: ModelConfigProvider) => Unsubscribe;
|
10
10
|
|
11
11
|
/**
|
12
|
-
* A
|
12
|
+
* EXPERIMENTAL: A component that is rendered inside the AssistantRuntimeProvider.
|
13
13
|
*
|
14
14
|
* Note: This field is expected to never change.
|
15
|
-
*
|
16
|
-
* for an example of updating the provider via a zustand store.
|
15
|
+
* To update the component, use a zustand store.
|
17
16
|
*/
|
18
|
-
readonly
|
17
|
+
readonly RenderComponent?: ComponentType | undefined;
|
19
18
|
};
|
@@ -3,14 +3,10 @@ import type { Unsubscribe } from "../../types/Unsubscribe";
|
|
3
3
|
import type { AssistantRuntimeCore } from "./AssistantRuntimeCore";
|
4
4
|
import { ProxyConfigProvider } from "../../utils/ProxyConfigProvider";
|
5
5
|
import { ThreadListRuntimeCore } from "./ThreadListRuntimeCore";
|
6
|
-
import { ComponentType } from "react";
|
7
6
|
|
8
7
|
export abstract class BaseAssistantRuntimeCore implements AssistantRuntimeCore {
|
9
8
|
protected readonly _proxyConfigProvider = new ProxyConfigProvider();
|
10
9
|
public abstract get threadList(): ThreadListRuntimeCore;
|
11
|
-
public abstract get Provider():
|
12
|
-
| ComponentType<React.PropsWithChildren>
|
13
|
-
| undefined;
|
14
10
|
|
15
11
|
constructor() {}
|
16
12
|
|
@@ -90,10 +90,11 @@ export type ThreadRuntimeCore = Readonly<{
|
|
90
90
|
messages: readonly ThreadMessage[];
|
91
91
|
suggestions: readonly ThreadSuggestion[];
|
92
92
|
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
93
|
+
// TODO deprecate for a more elegant solution
|
94
|
+
// /**
|
95
|
+
// * @deprecated This field is deprecated and will be removed in 0.8.0.
|
96
|
+
// * Please migrate to using `AssistantRuntimeCore.Provider` instead.
|
97
|
+
// */
|
97
98
|
extras: unknown;
|
98
99
|
|
99
100
|
subscribe: (callback: () => void) => Unsubscribe;
|
@@ -52,7 +52,8 @@ const CoreUserMessageSchema = z.object({
|
|
52
52
|
Unstable_AudioContentPart,
|
53
53
|
]),
|
54
54
|
)
|
55
|
-
.min(1)
|
55
|
+
.min(1)
|
56
|
+
.readonly(),
|
56
57
|
});
|
57
58
|
|
58
59
|
const CoreAssistantMessageSchema = z.object({
|
@@ -64,12 +65,13 @@ const CoreAssistantMessageSchema = z.object({
|
|
64
65
|
CoreToolCallContentPartSchema,
|
65
66
|
]),
|
66
67
|
)
|
67
|
-
.min(1)
|
68
|
+
.min(1)
|
69
|
+
.readonly(),
|
68
70
|
});
|
69
71
|
|
70
72
|
const CoreSystemMessageSchema = z.object({
|
71
73
|
role: z.literal("system"),
|
72
|
-
content: z.tuple([TextContentPartSchema]),
|
74
|
+
content: z.tuple([TextContentPartSchema]).readonly(),
|
73
75
|
});
|
74
76
|
|
75
77
|
const CoreMessageSchema = z.discriminatedUnion("role", [
|
@@ -81,13 +83,13 @@ const CoreMessageSchema = z.discriminatedUnion("role", [
|
|
81
83
|
export const EdgeRuntimeRequestOptionsSchema = z
|
82
84
|
.object({
|
83
85
|
system: z.string().optional(),
|
84
|
-
messages: z.array(CoreMessageSchema).min(1),
|
86
|
+
messages: z.array(CoreMessageSchema).min(1).readonly(),
|
85
87
|
runConfig: z
|
86
88
|
.object({
|
87
89
|
custom: z.record(z.unknown()).optional(),
|
88
90
|
})
|
89
91
|
.optional(),
|
90
|
-
tools: z.array(LanguageModelV1FunctionToolSchema).optional(),
|
92
|
+
tools: z.array(LanguageModelV1FunctionToolSchema).readonly().optional(),
|
91
93
|
unstable_assistantMessageId: z.string().optional(),
|
92
94
|
})
|
93
95
|
.merge(LanguageModelV1CallSettingsSchema)
|
@@ -78,7 +78,10 @@ export const fromLanguageModelMessages = (
|
|
78
78
|
if (mergeSteps) {
|
79
79
|
const previousMessage = messages[messages.length - 1];
|
80
80
|
if (previousMessage?.role === "assistant") {
|
81
|
-
previousMessage.content
|
81
|
+
previousMessage.content = [
|
82
|
+
...previousMessage.content,
|
83
|
+
...newContent,
|
84
|
+
];
|
82
85
|
break;
|
83
86
|
}
|
84
87
|
}
|
@@ -5,11 +5,7 @@ import {
|
|
5
5
|
LanguageModelV1Prompt,
|
6
6
|
LanguageModelV1CallOptions,
|
7
7
|
} from "@ai-sdk/provider";
|
8
|
-
import {
|
9
|
-
CoreMessage,
|
10
|
-
ThreadMessage,
|
11
|
-
ThreadStep,
|
12
|
-
} from "../../types/AssistantTypes";
|
8
|
+
import { CoreMessage, ThreadStep } from "../../types/AssistantTypes";
|
13
9
|
import { assistantEncoderStream } from "./streams/assistantEncoderStream";
|
14
10
|
import { EdgeRuntimeRequestOptionsSchema } from "./EdgeRuntimeRequestOptions";
|
15
11
|
import { toLanguageModelMessages } from "./converters/toLanguageModelMessages";
|
@@ -25,8 +21,7 @@ import {
|
|
25
21
|
LanguageModelV1CallSettings,
|
26
22
|
LanguageModelV1CallSettingsSchema,
|
27
23
|
} from "../../types/ModelConfigTypes";
|
28
|
-
import {
|
29
|
-
import { toCoreMessage } from "./converters/toCoreMessages";
|
24
|
+
import { CoreChatModelRunResult } from "../local/ChatModelAdapter";
|
30
25
|
import { streamPartEncoderStream } from "./streams/utils/streamPartEncoderStream";
|
31
26
|
import { z } from "zod";
|
32
27
|
|
@@ -116,7 +111,7 @@ export const getEdgeRuntimeStream = async ({
|
|
116
111
|
abortSignal,
|
117
112
|
|
118
113
|
...(!!system ? { system } : undefined),
|
119
|
-
messages,
|
114
|
+
messages: [...messages],
|
120
115
|
tools: lmServerTools.concat(clientTools as LanguageModelV1FunctionTool[]),
|
121
116
|
...(toolChoice ? { toolChoice } : undefined),
|
122
117
|
});
|
@@ -135,7 +130,7 @@ export const getEdgeRuntimeStream = async ({
|
|
135
130
|
let serverStream = tees[1];
|
136
131
|
|
137
132
|
if (onFinish) {
|
138
|
-
let lastChunk:
|
133
|
+
let lastChunk: CoreChatModelRunResult | undefined;
|
139
134
|
serverStream = serverStream.pipeThrough(runResultStream()).pipeThrough(
|
140
135
|
new TransformStream({
|
141
136
|
transform(chunk) {
|
@@ -147,10 +142,10 @@ export const getEdgeRuntimeStream = async ({
|
|
147
142
|
|
148
143
|
const resultingMessages = [
|
149
144
|
...messages,
|
150
|
-
|
145
|
+
{
|
151
146
|
role: "assistant",
|
152
147
|
content: lastChunk.content,
|
153
|
-
}
|
148
|
+
} satisfies CoreMessage,
|
154
149
|
];
|
155
150
|
onFinish({
|
156
151
|
messages: resultingMessages,
|
@@ -1,9 +1,10 @@
|
|
1
|
-
import { LanguageModelV1StreamPart } from "@ai-sdk/provider";
|
1
|
+
import { JSONValue, LanguageModelV1StreamPart } from "@ai-sdk/provider";
|
2
2
|
|
3
3
|
export enum AssistantStreamChunkType {
|
4
4
|
TextDelta = "0",
|
5
5
|
Data = "2",
|
6
6
|
Error = "3",
|
7
|
+
Annotation = "8",
|
7
8
|
ToolCall = "9",
|
8
9
|
ToolCallResult = "a",
|
9
10
|
ToolCallBegin = "b",
|
@@ -14,7 +15,8 @@ export enum AssistantStreamChunkType {
|
|
14
15
|
|
15
16
|
export type AssistantStreamChunk = {
|
16
17
|
[AssistantStreamChunkType.TextDelta]: string;
|
17
|
-
[AssistantStreamChunkType.Data]:
|
18
|
+
[AssistantStreamChunkType.Data]: JSONValue[];
|
19
|
+
[AssistantStreamChunkType.Annotation]: JSONValue[];
|
18
20
|
[AssistantStreamChunkType.ToolCall]: {
|
19
21
|
toolCallId: string;
|
20
22
|
toolName: string;
|
@@ -55,4 +57,3 @@ export type AssistantStreamChunk = {
|
|
55
57
|
"type"
|
56
58
|
>;
|
57
59
|
};
|
58
|
-
|
@@ -131,8 +131,15 @@ export function assistantDecoderStream() {
|
|
131
131
|
break;
|
132
132
|
}
|
133
133
|
|
134
|
-
// TODO
|
135
134
|
case AssistantStreamChunkType.Data:
|
135
|
+
controller.enqueue({
|
136
|
+
type: "data",
|
137
|
+
data: value,
|
138
|
+
});
|
139
|
+
break;
|
140
|
+
|
141
|
+
// TODO
|
142
|
+
case AssistantStreamChunkType.Annotation:
|
136
143
|
break;
|
137
144
|
|
138
145
|
default: {
|
@@ -44,6 +44,14 @@ export function assistantEncoderStream() {
|
|
44
44
|
break;
|
45
45
|
}
|
46
46
|
|
47
|
+
case "data": {
|
48
|
+
controller.enqueue({
|
49
|
+
type: AssistantStreamChunkType.Data,
|
50
|
+
value: chunk.data,
|
51
|
+
});
|
52
|
+
break;
|
53
|
+
}
|
54
|
+
|
47
55
|
// ignore
|
48
56
|
case "tool-call":
|
49
57
|
case "response-metadata":
|
@@ -1,16 +1,16 @@
|
|
1
|
-
import {
|
1
|
+
import { CoreChatModelRunResult } from "../../local/ChatModelAdapter";
|
2
2
|
import { parsePartialJson } from "../partial-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";
|
6
6
|
|
7
7
|
export function runResultStream() {
|
8
|
-
let message:
|
8
|
+
let message: CoreChatModelRunResult = {
|
9
9
|
content: [],
|
10
10
|
status: { type: "running" },
|
11
11
|
};
|
12
12
|
|
13
|
-
return new TransformStream<ToolResultStreamPart,
|
13
|
+
return new TransformStream<ToolResultStreamPart, CoreChatModelRunResult>({
|
14
14
|
transform(chunk, controller) {
|
15
15
|
const chunkType = chunk.type;
|
16
16
|
switch (chunkType) {
|
@@ -34,9 +34,16 @@ export function runResultStream() {
|
|
34
34
|
}
|
35
35
|
|
36
36
|
case "tool-call":
|
37
|
+
// ignoring tool call events because they are converted to tool-call-delta as well
|
37
38
|
case "response-metadata":
|
38
39
|
break;
|
39
40
|
|
41
|
+
case "data": {
|
42
|
+
message = appendData(message, chunk);
|
43
|
+
controller.enqueue(message);
|
44
|
+
break;
|
45
|
+
}
|
46
|
+
|
40
47
|
case "tool-result": {
|
41
48
|
message = appendOrUpdateToolResult(
|
42
49
|
message,
|
@@ -48,7 +55,7 @@ export function runResultStream() {
|
|
48
55
|
break;
|
49
56
|
}
|
50
57
|
case "step-finish": {
|
51
|
-
message =
|
58
|
+
message = appendStepFinish(message, chunk);
|
52
59
|
controller.enqueue(message);
|
53
60
|
break;
|
54
61
|
}
|
@@ -92,7 +99,10 @@ export function runResultStream() {
|
|
92
99
|
});
|
93
100
|
}
|
94
101
|
|
95
|
-
const appendOrUpdateText = (
|
102
|
+
const appendOrUpdateText = (
|
103
|
+
message: CoreChatModelRunResult,
|
104
|
+
textDelta: string,
|
105
|
+
) => {
|
96
106
|
let contentParts = message.content ?? [];
|
97
107
|
let contentPart = message.content?.at(-1);
|
98
108
|
if (contentPart?.type !== "text") {
|
@@ -108,11 +118,11 @@ const appendOrUpdateText = (message: ChatModelRunResult, textDelta: string) => {
|
|
108
118
|
};
|
109
119
|
|
110
120
|
const appendOrUpdateToolCall = (
|
111
|
-
message:
|
121
|
+
message: CoreChatModelRunResult,
|
112
122
|
toolCallId: string,
|
113
123
|
toolName: string,
|
114
124
|
argsTextDelta: string,
|
115
|
-
):
|
125
|
+
): CoreChatModelRunResult => {
|
116
126
|
let contentParts = message.content ?? [];
|
117
127
|
const contentPartIdx = contentParts.findIndex(
|
118
128
|
(c) => c.type === "tool-call" && c.toolCallId === toolCallId,
|
@@ -152,7 +162,7 @@ const appendOrUpdateToolCall = (
|
|
152
162
|
};
|
153
163
|
|
154
164
|
const appendOrUpdateToolResult = (
|
155
|
-
message:
|
165
|
+
message: CoreChatModelRunResult,
|
156
166
|
toolCallId: string,
|
157
167
|
toolName: string,
|
158
168
|
result: any,
|
@@ -184,10 +194,23 @@ const appendOrUpdateToolResult = (
|
|
184
194
|
};
|
185
195
|
};
|
186
196
|
|
187
|
-
const
|
188
|
-
message:
|
197
|
+
const appendData = (
|
198
|
+
message: CoreChatModelRunResult,
|
199
|
+
chunk: ToolResultStreamPart & { type: "data" },
|
200
|
+
): CoreChatModelRunResult => {
|
201
|
+
return {
|
202
|
+
...message,
|
203
|
+
metadata: {
|
204
|
+
...message.metadata,
|
205
|
+
unstable_data: [...(message.metadata?.unstable_data ?? []), chunk.data],
|
206
|
+
},
|
207
|
+
};
|
208
|
+
};
|
209
|
+
|
210
|
+
const appendStepFinish = (
|
211
|
+
message: CoreChatModelRunResult,
|
189
212
|
chunk: ToolResultStreamPart & { type: "step-finish" },
|
190
|
-
):
|
213
|
+
): CoreChatModelRunResult => {
|
191
214
|
const { type, ...rest } = chunk;
|
192
215
|
const steps = [
|
193
216
|
...(message.metadata?.steps ?? []),
|
@@ -205,9 +228,9 @@ const appendOrUpdateStepFinish = (
|
|
205
228
|
};
|
206
229
|
|
207
230
|
const appendOrUpdateFinish = (
|
208
|
-
message:
|
231
|
+
message: CoreChatModelRunResult,
|
209
232
|
chunk: LanguageModelV1StreamPart & { type: "finish" },
|
210
|
-
):
|
233
|
+
): CoreChatModelRunResult => {
|
211
234
|
const { type, ...rest } = chunk;
|
212
235
|
|
213
236
|
const steps = [
|
@@ -254,8 +277,8 @@ const getStatus = (
|
|
254
277
|
};
|
255
278
|
|
256
279
|
const appendOrUpdateCancel = (
|
257
|
-
message:
|
258
|
-
):
|
280
|
+
message: CoreChatModelRunResult,
|
281
|
+
): CoreChatModelRunResult => {
|
259
282
|
return {
|
260
283
|
...message,
|
261
284
|
status: {
|
@@ -1,10 +1,14 @@
|
|
1
1
|
import { Tool } from "../../../types/ModelConfigTypes";
|
2
|
-
import { LanguageModelV1StreamPart } from "@ai-sdk/provider";
|
2
|
+
import { JSONValue, LanguageModelV1StreamPart } from "@ai-sdk/provider";
|
3
3
|
import { z } from "zod";
|
4
4
|
import sjson from "secure-json-parse";
|
5
5
|
|
6
6
|
export type ToolResultStreamPart =
|
7
7
|
| LanguageModelV1StreamPart
|
8
|
+
| {
|
9
|
+
type: "data";
|
10
|
+
data: JSONValue[];
|
11
|
+
}
|
8
12
|
| {
|
9
13
|
type: "tool-result";
|
10
14
|
toolCallType: "function";
|
@@ -107,6 +111,7 @@ export function toolResultStream(
|
|
107
111
|
case "finish":
|
108
112
|
case "error":
|
109
113
|
case "response-metadata":
|
114
|
+
case "data":
|
110
115
|
break;
|
111
116
|
|
112
117
|
default: {
|
@@ -1,4 +1,3 @@
|
|
1
|
-
import { PropsWithChildren } from "react";
|
2
1
|
import { AppendMessage, ThreadMessage } from "../../types";
|
3
2
|
import { AttachmentAdapter } from "../attachment";
|
4
3
|
import {
|
@@ -54,11 +53,6 @@ type ExternalStoreAdapterBase<T> = {
|
|
54
53
|
isRunning?: boolean | undefined;
|
55
54
|
messages: T[];
|
56
55
|
suggestions?: readonly ThreadSuggestion[] | undefined;
|
57
|
-
|
58
|
-
/**
|
59
|
-
* @deprecated This field is deprecated and will be removed in 0.8.0.
|
60
|
-
* Please migrate to `Provider` and a custom react context provider component instead.
|
61
|
-
*/
|
62
56
|
extras?: unknown;
|
63
57
|
|
64
58
|
setMessages?: ((messages: T[]) => void) | undefined;
|
@@ -88,8 +82,6 @@ type ExternalStoreAdapterBase<T> = {
|
|
88
82
|
copy?: boolean | undefined;
|
89
83
|
}
|
90
84
|
| undefined;
|
91
|
-
|
92
|
-
unstable_Provider?: React.ComponentType<PropsWithChildren> | undefined;
|
93
85
|
};
|
94
86
|
|
95
87
|
export type ExternalStoreAdapter<T = ThreadMessage> =
|
@@ -2,9 +2,6 @@ import { BaseAssistantRuntimeCore } from "../../internal";
|
|
2
2
|
import { ExternalStoreThreadListRuntimeCore } from "./ExternalStoreThreadListRuntimeCore";
|
3
3
|
import { ExternalStoreAdapter } from "./ExternalStoreAdapter";
|
4
4
|
import { ExternalStoreThreadRuntimeCore } from "./ExternalStoreThreadRuntimeCore";
|
5
|
-
import { Fragment } from "react/jsx-runtime";
|
6
|
-
import { PropsWithChildren } from "react";
|
7
|
-
import { create } from "zustand";
|
8
5
|
|
9
6
|
const getThreadListAdapter = (store: ExternalStoreAdapter<any>) => {
|
10
7
|
return {
|
@@ -15,13 +12,8 @@ const getThreadListAdapter = (store: ExternalStoreAdapter<any>) => {
|
|
15
12
|
export class ExternalStoreRuntimeCore extends BaseAssistantRuntimeCore {
|
16
13
|
public readonly threadList;
|
17
14
|
|
18
|
-
private useRenderComponent;
|
19
|
-
|
20
15
|
constructor(adapter: ExternalStoreAdapter<any>) {
|
21
16
|
super();
|
22
|
-
this.useRenderComponent = create(() => ({
|
23
|
-
RenderComponent: adapter.unstable_Provider ?? Fragment,
|
24
|
-
}));
|
25
17
|
this.threadList = new ExternalStoreThreadListRuntimeCore(
|
26
18
|
getThreadListAdapter(adapter),
|
27
19
|
() =>
|
@@ -33,17 +25,5 @@ export class ExternalStoreRuntimeCore extends BaseAssistantRuntimeCore {
|
|
33
25
|
// Update the thread list adapter and propagate store changes to the main thread
|
34
26
|
this.threadList.__internal_setAdapter(getThreadListAdapter(adapter));
|
35
27
|
this.threadList.getMainThreadRuntimeCore().__internal_setAdapter(adapter);
|
36
|
-
|
37
|
-
const RenderComponent = adapter.unstable_Provider ?? Fragment;
|
38
|
-
if (
|
39
|
-
RenderComponent !== this.useRenderComponent.getState().RenderComponent
|
40
|
-
) {
|
41
|
-
this.useRenderComponent.setState({ RenderComponent }, true);
|
42
|
-
}
|
43
28
|
}
|
44
|
-
|
45
|
-
public readonly Provider = ({ children }: PropsWithChildren) => {
|
46
|
-
const RenderComponent = this.useRenderComponent.getState().RenderComponent;
|
47
|
-
return <RenderComponent>{children}</RenderComponent>;
|
48
|
-
};
|
49
29
|
}
|