@budibase/frontend-core 3.24.7 → 3.25.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@budibase/frontend-core",
3
- "version": "3.24.7",
3
+ "version": "3.25.0",
4
4
  "description": "Budibase frontend core libraries used in builder and client",
5
5
  "author": "Budibase",
6
6
  "license": "MPL-2.0",
@@ -14,9 +14,9 @@
14
14
  "@budibase/types": "*",
15
15
  "ai": "^6.0.3",
16
16
  "dayjs": "^1.10.8",
17
- "lodash": "4.17.21",
17
+ "lodash": "4.17.23",
18
18
  "shortid": "2.2.15",
19
19
  "socket.io-client": "^4.7.5"
20
20
  },
21
- "gitHead": "9c57745f7886ced1ce7f20d92a776144ff7eeec4"
21
+ "gitHead": "30a7a1c1d610635f42a8c4b30bf17be3687dbe07"
22
22
  }
@@ -163,33 +163,42 @@
163
163
  )
164
164
 
165
165
  let streamedMessages = [...updatedChat.messages]
166
+ let transientAssistantId = uuidv4()
166
167
 
167
168
  for await (const message of messageStream) {
168
- if (message?.id) {
169
+ const normalizedMessage =
170
+ !persistConversation && message?.role === "assistant" && !message?.id
171
+ ? {
172
+ ...message,
173
+ id: transientAssistantId,
174
+ }
175
+ : message
176
+
177
+ if (normalizedMessage?.id) {
169
178
  const existingIndex = streamedMessages.findIndex(
170
- existing => existing.id === message.id
179
+ existing => existing.id === normalizedMessage.id
171
180
  )
172
181
  if (existingIndex !== -1) {
173
182
  streamedMessages = streamedMessages.map((existing, index) =>
174
- index === existingIndex ? message : existing
183
+ index === existingIndex ? normalizedMessage : existing
175
184
  )
176
185
  } else {
177
- streamedMessages = [...streamedMessages, message]
186
+ streamedMessages = [...streamedMessages, normalizedMessage]
178
187
  }
179
- } else if (message?.role === "assistant") {
188
+ } else if (normalizedMessage?.role === "assistant") {
180
189
  const lastIndex = [...streamedMessages]
181
190
  .reverse()
182
191
  .findIndex(existing => existing.role === "assistant")
183
192
  if (lastIndex !== -1) {
184
193
  const targetIndex = streamedMessages.length - 1 - lastIndex
185
194
  streamedMessages = streamedMessages.map((existing, index) =>
186
- index === targetIndex ? message : existing
195
+ index === targetIndex ? normalizedMessage : existing
187
196
  )
188
197
  } else {
189
- streamedMessages = [...streamedMessages, message]
198
+ streamedMessages = [...streamedMessages, normalizedMessage]
190
199
  }
191
200
  } else {
192
- streamedMessages = [...streamedMessages, message]
201
+ streamedMessages = [...streamedMessages, normalizedMessage]
193
202
  }
194
203
  chat = {
195
204
  ...updatedChat,