@helpai/elements 0.51.2 → 0.51.3

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/index.mjs CHANGED
@@ -29,7 +29,7 @@ var BRAND = {
29
29
  };
30
30
 
31
31
  // src/core/version.ts
32
- var ELEMENTS_VERSION = true ? "0.51.2" : "0.0.0-dev";
32
+ var ELEMENTS_VERSION = true ? "0.51.3" : "0.0.0-dev";
33
33
  var ELEMENTS_VERSION_PARAM = "_ev";
34
34
 
35
35
  // src/i18n/strings.ts
@@ -2831,6 +2831,15 @@ function fromWireMessage(w) {
2831
2831
  partsSig: signal(parts)
2832
2832
  };
2833
2833
  }
2834
+ var TERMINAL_WIRE_STATUS = /* @__PURE__ */ new Set(["completed", "failed", "canceled"]);
2835
+ function wireHasNoVisibleAnswer(w) {
2836
+ return !w.parts.some(
2837
+ (part) => part.type === "text" && part.text.trim() !== "" || part.type.startsWith("tool-") || part.type === "file" || part.type === "source-url" || part.type === "source-document"
2838
+ );
2839
+ }
2840
+ function isResumeOwnedWireTurn(w) {
2841
+ return w.role === "assistant" && w.status != null && !TERMINAL_WIRE_STATUS.has(w.status) && wireHasNoVisibleAnswer(w);
2842
+ }
2834
2843
  function fromReactive(m) {
2835
2844
  return {
2836
2845
  id: m.id,
@@ -7755,7 +7764,7 @@ function App({ options, hostElement, bus }) {
7755
7764
  try {
7756
7765
  const [chat, markers] = await Promise.all([transport.loadConversation(conversationId), fetchFormMarkers()]);
7757
7766
  if (isStale()) return;
7758
- const loaded = (chat.messages ?? []).map(fromWireMessage);
7767
+ const loaded = (chat.messages ?? []).filter((w) => !isResumeOwnedWireTurn(w)).map(fromWireMessage);
7759
7768
  setFormMarkers(markers);
7760
7769
  const tail = resumeBubbleRef.current ? [resumeBubbleRef.current] : [];
7761
7770
  if (loaded.length || tail.length) {
@@ -8465,7 +8474,7 @@ function App({ options, hostElement, bus }) {
8465
8474
  transport.loadConversation(targetConversationId),
8466
8475
  fetchFormMarkers(targetConversationId)
8467
8476
  ]);
8468
- const hydrated = res.messages.map(fromWireMessage);
8477
+ const hydrated = res.messages.filter((w) => !isResumeOwnedWireTurn(w)).map(fromWireMessage);
8469
8478
  batch(() => {
8470
8479
  messagesSig.value = withWelcomeRows(hydrated, markers);
8471
8480
  conversationIdSig.value = res.conversationId;
package/package.json CHANGED
@@ -80,5 +80,5 @@
80
80
  ],
81
81
  "type": "module",
82
82
  "types": "./index.d.ts",
83
- "version": "0.51.2"
83
+ "version": "0.51.3"
84
84
  }
package/web-component.mjs CHANGED
@@ -1794,7 +1794,7 @@ function createAuth(opts) {
1794
1794
  }
1795
1795
 
1796
1796
  // src/core/version.ts
1797
- var ELEMENTS_VERSION = true ? "0.51.2" : "0.0.0-dev";
1797
+ var ELEMENTS_VERSION = true ? "0.51.3" : "0.0.0-dev";
1798
1798
  var ELEMENTS_VERSION_PARAM = "_ev";
1799
1799
 
1800
1800
  // src/stream/types.ts
@@ -2790,6 +2790,15 @@ function fromWireMessage(w) {
2790
2790
  partsSig: signal(parts)
2791
2791
  };
2792
2792
  }
2793
+ var TERMINAL_WIRE_STATUS = /* @__PURE__ */ new Set(["completed", "failed", "canceled"]);
2794
+ function wireHasNoVisibleAnswer(w) {
2795
+ return !w.parts.some(
2796
+ (part) => part.type === "text" && part.text.trim() !== "" || part.type.startsWith("tool-") || part.type === "file" || part.type === "source-url" || part.type === "source-document"
2797
+ );
2798
+ }
2799
+ function isResumeOwnedWireTurn(w) {
2800
+ return w.role === "assistant" && w.status != null && !TERMINAL_WIRE_STATUS.has(w.status) && wireHasNoVisibleAnswer(w);
2801
+ }
2793
2802
  function fromReactive(m) {
2794
2803
  return {
2795
2804
  id: m.id,
@@ -7714,7 +7723,7 @@ function App({ options, hostElement, bus }) {
7714
7723
  try {
7715
7724
  const [chat, markers] = await Promise.all([transport.loadConversation(conversationId), fetchFormMarkers()]);
7716
7725
  if (isStale()) return;
7717
- const loaded = (chat.messages ?? []).map(fromWireMessage);
7726
+ const loaded = (chat.messages ?? []).filter((w) => !isResumeOwnedWireTurn(w)).map(fromWireMessage);
7718
7727
  setFormMarkers(markers);
7719
7728
  const tail = resumeBubbleRef.current ? [resumeBubbleRef.current] : [];
7720
7729
  if (loaded.length || tail.length) {
@@ -8424,7 +8433,7 @@ function App({ options, hostElement, bus }) {
8424
8433
  transport.loadConversation(targetConversationId),
8425
8434
  fetchFormMarkers(targetConversationId)
8426
8435
  ]);
8427
- const hydrated = res.messages.map(fromWireMessage);
8436
+ const hydrated = res.messages.filter((w) => !isResumeOwnedWireTurn(w)).map(fromWireMessage);
8428
8437
  batch(() => {
8429
8438
  messagesSig.value = withWelcomeRows(hydrated, markers);
8430
8439
  conversationIdSig.value = res.conversationId;