@meistrari/chat-nuxt 3.15.0-rc.1 → 3.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/module.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@meistrari/chat-nuxt",
3
3
  "configKey": "chatNuxt",
4
- "version": "3.15.0-rc.1",
4
+ "version": "3.15.0-rc.2",
5
5
  "builder": {
6
6
  "@nuxt/module-builder": "1.0.2",
7
7
  "unbuild": "unknown"
@@ -10,16 +10,15 @@ export function terminalMessageTransitions(previousMessages, nextMessages) {
10
10
  const previousById = new Map(previousMessages.map((message) => [message.id, message]));
11
11
  const transitions = [];
12
12
  for (const message of nextMessages) {
13
- const previous = previousById.get(message.id);
14
- if (message.role !== "assistant" || !previous)
13
+ if (message.role !== "assistant" || previousById.get(message.id)?.status !== "pending" /* Pending */)
15
14
  continue;
16
- if (previous.status === "pending" /* Pending */ && message.status === "completed" /* Completed */) {
15
+ if (message.status === "completed" /* Completed */) {
17
16
  transitions.push({
18
17
  conversationId: message.conversationId,
19
18
  messageId: message.id,
20
19
  status: "completed" /* Completed */
21
20
  });
22
- } else if (message.status === "failed" /* Failed */ && (previous.status === "pending" /* Pending */ || previous.status === "completed" /* Completed */)) {
21
+ } else if (message.status === "failed" /* Failed */) {
23
22
  transitions.push({
24
23
  conversationId: message.conversationId,
25
24
  messageId: message.id,
@@ -161,10 +161,10 @@ export function useChat(options = {}) {
161
161
  const messageId = streamingMessageId.value;
162
162
  if (!messageId)
163
163
  return;
164
- const pendingMessage = messages.value.find(
164
+ const isPendingAssistant = messages.value.some(
165
165
  (message) => message.id === messageId && message.role === "assistant" && message.status === ChatMessageStatus.Pending
166
166
  );
167
- if (!pendingMessage)
167
+ if (!isPendingAssistant)
168
168
  return;
169
169
  pendingStreamReconciliationIds.value = /* @__PURE__ */ new Set([
170
170
  ...pendingStreamReconciliationIds.value,
@@ -179,11 +179,9 @@ export function useChat(options = {}) {
179
179
  content: resolveStreamingContent(message.content, result.text),
180
180
  status: ChatMessageStatus.Completed
181
181
  } : message);
182
- chatMessageTerminal.emit({
183
- conversationId: pendingMessage.conversationId,
184
- messageId,
185
- status: ChatMessageStatus.Completed
186
- });
182
+ }
183
+ function durableKnownMessages() {
184
+ return messages.value.map((message) => pendingStreamReconciliationIds.value.has(message.id) ? { ...message, status: ChatMessageStatus.Pending } : message);
187
185
  }
188
186
  function confirmStreamedResult(result) {
189
187
  if (result.status === "waiting_messages") {
@@ -261,7 +259,7 @@ export function useChat(options = {}) {
261
259
  const optimisticMessage = currentMessagesById.get(message.id);
262
260
  return optimisticMessage?.status === ChatMessageStatus.Completed ? optimisticMessage : message;
263
261
  });
264
- const terminalMessages = terminalMessageTransitions(messages.value, reconciledMessages);
262
+ const terminalMessages = terminalMessageTransitions(durableKnownMessages(), response.messages);
265
263
  pendingStreamReconciliationIds.value = remainingReconciliationIds;
266
264
  pendingRealResultIds.value = remainingRealResultIds;
267
265
  messages.value = reconciledMessages;
@@ -303,7 +301,7 @@ export function useChat(options = {}) {
303
301
  status: ChatMessageStatus.Failed
304
302
  };
305
303
  });
306
- const terminalMessages = terminalMessageTransitions(previousMessages, failedMessages);
304
+ const terminalMessages = terminalMessageTransitions(durableKnownMessages(), failedMessages);
307
305
  pendingStreamReconciliationIds.value = /* @__PURE__ */ new Set();
308
306
  pendingRealResultIds.value = /* @__PURE__ */ new Set();
309
307
  messages.value = failedMessages;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@meistrari/chat-nuxt",
3
- "version": "3.15.0-rc.1",
3
+ "version": "3.15.0",
4
4
  "type": "module",
5
5
  "exports": {
6
6
  ".": {