@flamingo-stack/openframe-frontend-core 0.0.659 → 0.0.660-snapshot.20260923164839

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.
Files changed (100) hide show
  1. package/dist/{chunk-RRGTBH3L.cjs → chunk-4EY5JSMK.cjs} +5 -5
  2. package/dist/{chunk-RRGTBH3L.cjs.map → chunk-4EY5JSMK.cjs.map} +1 -1
  3. package/dist/{chunk-VW7NXM2O.cjs → chunk-4JITKV2S.cjs} +45 -45
  4. package/dist/{chunk-VW7NXM2O.cjs.map → chunk-4JITKV2S.cjs.map} +1 -1
  5. package/dist/{chunk-H7ORPMRH.js → chunk-4NKKPGDN.js} +21 -19
  6. package/dist/{chunk-H7ORPMRH.js.map → chunk-4NKKPGDN.js.map} +1 -1
  7. package/dist/{chunk-2DLM3NXE.js → chunk-5LS7KNAU.js} +5 -5
  8. package/dist/{chunk-GDHV5W5C.cjs → chunk-6VY6PXAN.cjs} +33 -33
  9. package/dist/{chunk-GDHV5W5C.cjs.map → chunk-6VY6PXAN.cjs.map} +1 -1
  10. package/dist/{chunk-UIAXQJPV.cjs → chunk-7KNVRRI4.cjs} +22 -22
  11. package/dist/{chunk-UIAXQJPV.cjs.map → chunk-7KNVRRI4.cjs.map} +1 -1
  12. package/dist/{chunk-ITVLOEGF.cjs → chunk-D7QWYQBQ.cjs} +71 -71
  13. package/dist/{chunk-ITVLOEGF.cjs.map → chunk-D7QWYQBQ.cjs.map} +1 -1
  14. package/dist/{chunk-6KR74SOJ.js → chunk-EUT6SQW7.js} +3 -3
  15. package/dist/{chunk-VFGBRGFB.js → chunk-F5LMTKQD.js} +3 -3
  16. package/dist/{chunk-MW7LEMFG.js → chunk-FC6I2NWF.js} +2 -2
  17. package/dist/{chunk-WMIB6JSA.cjs → chunk-GLDXZK76.cjs} +4 -4
  18. package/dist/{chunk-WMIB6JSA.cjs.map → chunk-GLDXZK76.cjs.map} +1 -1
  19. package/dist/{chunk-LSVQNRX4.cjs → chunk-GXHZCGVJ.cjs} +21 -19
  20. package/dist/chunk-GXHZCGVJ.cjs.map +1 -0
  21. package/dist/{chunk-L4YJU3AG.cjs → chunk-H3DF7COI.cjs} +15 -15
  22. package/dist/{chunk-L4YJU3AG.cjs.map → chunk-H3DF7COI.cjs.map} +1 -1
  23. package/dist/{chunk-KP4K6I5O.js → chunk-IMDYBINC.js} +3 -3
  24. package/dist/{chunk-ZT3CZCDS.js → chunk-J5TAB64U.js} +2 -2
  25. package/dist/{chunk-WWEQT2WX.js → chunk-KCYGLC7Q.js} +5 -5
  26. package/dist/{chunk-E7C3F2SK.js → chunk-M23ZPKOK.js} +2 -2
  27. package/dist/{chunk-Z7NI2TQD.cjs → chunk-N4ORXOZK.cjs} +10 -10
  28. package/dist/{chunk-Z7NI2TQD.cjs.map → chunk-N4ORXOZK.cjs.map} +1 -1
  29. package/dist/{chunk-P2ROGTMF.js → chunk-PC5WWTDM.js} +3 -3
  30. package/dist/{chunk-T6LNAX4R.js → chunk-Q4XWYP5U.js} +4 -4
  31. package/dist/{chunk-NXAXZPEO.cjs → chunk-QARWK4LN.cjs} +10 -10
  32. package/dist/{chunk-NXAXZPEO.cjs.map → chunk-QARWK4LN.cjs.map} +1 -1
  33. package/dist/{chunk-6DVSTVUU.js → chunk-RFGXKRRL.js} +6 -6
  34. package/dist/{chunk-K4W3II7M.cjs → chunk-RPHRBZG6.cjs} +3 -3
  35. package/dist/{chunk-K4W3II7M.cjs.map → chunk-RPHRBZG6.cjs.map} +1 -1
  36. package/dist/{chunk-VVOI2OC3.js → chunk-TRR6XUEP.js} +2 -2
  37. package/dist/{chunk-MEFCA6VD.js → chunk-U4N65JUW.js} +3 -3
  38. package/dist/{chunk-QVZD2LLU.js → chunk-WDJT7NJ5.js} +5 -5
  39. package/dist/{chunk-VWGFJJD6.cjs → chunk-WGTKYVBK.cjs} +10 -10
  40. package/dist/{chunk-VWGFJJD6.cjs.map → chunk-WGTKYVBK.cjs.map} +1 -1
  41. package/dist/{chunk-EOGXNLZC.cjs → chunk-XOA32PN3.cjs} +22 -22
  42. package/dist/{chunk-EOGXNLZC.cjs.map → chunk-XOA32PN3.cjs.map} +1 -1
  43. package/dist/{chunk-VJMPYY5O.cjs → chunk-YNW3DQFY.cjs} +25 -25
  44. package/dist/{chunk-VJMPYY5O.cjs.map → chunk-YNW3DQFY.cjs.map} +1 -1
  45. package/dist/{chunk-APWQTZCR.js → chunk-Z572FXXM.js} +2 -2
  46. package/dist/{chunk-AOOORZI5.cjs → chunk-ZASHVL45.cjs} +3 -3
  47. package/dist/{chunk-AOOORZI5.cjs.map → chunk-ZASHVL45.cjs.map} +1 -1
  48. package/dist/{chunk-PUE4XMZK.cjs → chunk-ZIT4TC5R.cjs} +163 -163
  49. package/dist/{chunk-PUE4XMZK.cjs.map → chunk-ZIT4TC5R.cjs.map} +1 -1
  50. package/dist/components/case-studies/index.cjs +14 -14
  51. package/dist/components/case-studies/index.js +3 -3
  52. package/dist/components/chat/index.cjs +2 -2
  53. package/dist/components/chat/index.js +1 -1
  54. package/dist/components/chat/utils/history-merge.d.ts +6 -0
  55. package/dist/components/chat/utils/history-merge.d.ts.map +1 -1
  56. package/dist/components/contact/index.cjs +4 -4
  57. package/dist/components/contact/index.js +3 -3
  58. package/dist/components/docs/index.cjs +7 -7
  59. package/dist/components/docs/index.js +6 -6
  60. package/dist/components/embeds/index.cjs +4 -4
  61. package/dist/components/embeds/index.js +3 -3
  62. package/dist/components/faq/index.cjs +4 -4
  63. package/dist/components/faq/index.js +3 -3
  64. package/dist/components/features/index.cjs +3 -3
  65. package/dist/components/features/index.js +2 -2
  66. package/dist/components/help-center-pages/index.cjs +23 -23
  67. package/dist/components/help-center-pages/index.js +14 -14
  68. package/dist/components/index.cjs +39 -39
  69. package/dist/components/index.js +13 -13
  70. package/dist/components/meeting-scheduler/index.cjs +24 -24
  71. package/dist/components/meeting-scheduler/index.js +2 -2
  72. package/dist/components/navigation/index.cjs +6 -6
  73. package/dist/components/navigation/index.js +5 -5
  74. package/dist/components/onboarding-guides/index.cjs +6 -6
  75. package/dist/components/onboarding-guides/index.js +5 -5
  76. package/dist/components/tickets/index.cjs +7 -7
  77. package/dist/components/tickets/index.js +6 -6
  78. package/dist/components/ui/index.cjs +3 -3
  79. package/dist/components/ui/index.js +2 -2
  80. package/dist/index.cjs +7 -7
  81. package/dist/index.js +6 -6
  82. package/package.json +1 -1
  83. package/src/components/chat/utils/__tests__/history-merge.test.ts +62 -0
  84. package/src/components/chat/utils/history-merge.ts +31 -17
  85. package/dist/chunk-LSVQNRX4.cjs.map +0 -1
  86. /package/dist/{chunk-2DLM3NXE.js.map → chunk-5LS7KNAU.js.map} +0 -0
  87. /package/dist/{chunk-6KR74SOJ.js.map → chunk-EUT6SQW7.js.map} +0 -0
  88. /package/dist/{chunk-VFGBRGFB.js.map → chunk-F5LMTKQD.js.map} +0 -0
  89. /package/dist/{chunk-MW7LEMFG.js.map → chunk-FC6I2NWF.js.map} +0 -0
  90. /package/dist/{chunk-KP4K6I5O.js.map → chunk-IMDYBINC.js.map} +0 -0
  91. /package/dist/{chunk-ZT3CZCDS.js.map → chunk-J5TAB64U.js.map} +0 -0
  92. /package/dist/{chunk-WWEQT2WX.js.map → chunk-KCYGLC7Q.js.map} +0 -0
  93. /package/dist/{chunk-E7C3F2SK.js.map → chunk-M23ZPKOK.js.map} +0 -0
  94. /package/dist/{chunk-P2ROGTMF.js.map → chunk-PC5WWTDM.js.map} +0 -0
  95. /package/dist/{chunk-T6LNAX4R.js.map → chunk-Q4XWYP5U.js.map} +0 -0
  96. /package/dist/{chunk-6DVSTVUU.js.map → chunk-RFGXKRRL.js.map} +0 -0
  97. /package/dist/{chunk-VVOI2OC3.js.map → chunk-TRR6XUEP.js.map} +0 -0
  98. /package/dist/{chunk-MEFCA6VD.js.map → chunk-U4N65JUW.js.map} +0 -0
  99. /package/dist/{chunk-QVZD2LLU.js.map → chunk-WDJT7NJ5.js.map} +0 -0
  100. /package/dist/{chunk-APWQTZCR.js.map → chunk-Z572FXXM.js.map} +0 -0
@@ -23625,28 +23625,29 @@ function sharesRequestKey(keys, others) {
23625
23625
  }
23626
23626
  return false;
23627
23627
  }
23628
- function userText(m) {
23629
- return m.role === "user" && typeof m.content === "string" ? m.content : "";
23628
+ function userTwinKey(m) {
23629
+ if (m.role !== "user" || typeof m.content !== "string" || m.content === "") return "";
23630
+ return `${m.authorType ?? "user"}\0${m.content}`;
23630
23631
  }
23631
23632
  function collectTwinSignals(rows) {
23632
23633
  const signals = { requestKeys: /* @__PURE__ */ new Set(), assistantTexts: /* @__PURE__ */ new Map(), userContents: /* @__PURE__ */ new Map() };
23633
23634
  for (const row of rows) {
23634
- for (const key of turnRequestKeys(row.content)) signals.requestKeys.add(key);
23635
+ for (const key2 of turnRequestKeys(row.content)) signals.requestKeys.add(key2);
23635
23636
  if (row.role === "assistant") {
23636
- const text3 = assistantAnswerText(row.content);
23637
- if (text3 !== "") signals.assistantTexts.set(text3, (signals.assistantTexts.get(text3) ?? 0) + 1);
23637
+ const text2 = assistantAnswerText(row.content);
23638
+ if (text2 !== "") signals.assistantTexts.set(text2, (signals.assistantTexts.get(text2) ?? 0) + 1);
23638
23639
  continue;
23639
23640
  }
23640
- const text2 = userText(row);
23641
- if (text2 !== "") signals.userContents.set(text2, (signals.userContents.get(text2) ?? 0) + 1);
23641
+ const key = userTwinKey(row);
23642
+ if (key !== "") signals.userContents.set(key, (signals.userContents.get(key) ?? 0) + 1);
23642
23643
  }
23643
23644
  return signals;
23644
23645
  }
23645
23646
  function twinVerdict(signals, m) {
23646
23647
  if (m.role !== "assistant") {
23647
- const text3 = userText(m);
23648
- if (text3 === "") return "unknown";
23649
- return signals.userContents.has(text3) ? "twin" : "distinct";
23648
+ const key = userTwinKey(m);
23649
+ if (key === "") return "unknown";
23650
+ return signals.userContents.has(key) ? "twin" : "distinct";
23650
23651
  }
23651
23652
  const keys = turnRequestKeys(m.content);
23652
23653
  if (keys.size > 0) return sharesRequestKey(keys, signals.requestKeys) ? "twin" : "distinct";
@@ -23786,20 +23787,21 @@ function mergeHistoryWithRealtime(input) {
23786
23787
  const keepRealtime = (m) => {
23787
23788
  if (m.role === "user" && isOptimisticId(m.id) && typeof m.content === "string") {
23788
23789
  const canBeInSnapshot = (m.timestamp?.getTime() ?? 0) <= historyFetchedAt;
23789
- return !(canBeInSnapshot && windowSignals.userContents.has(m.content));
23790
+ return !(canBeInSnapshot && windowSignals.userContents.has(userTwinKey(m)));
23790
23791
  }
23791
23792
  if (isSyntheticRealtimeId(m.id) && m.id !== streamingMessageId) {
23792
23793
  if (m.role === "assistant" && trailingAssistantText && assistantAnswerText(m.content) === trailingAssistantText) {
23793
23794
  return false;
23794
23795
  }
23795
23796
  if (m.role === "user" && isUserRequestSyntheticId(m.id) && typeof m.content === "string") {
23796
- const seen = (seenUserSyntheticByContent.get(m.content) ?? 0) + 1;
23797
- seenUserSyntheticByContent.set(m.content, seen);
23798
- if ((windowSignals.userContents.get(m.content) ?? 0) < seen) return true;
23797
+ const twinKey = userTwinKey(m);
23798
+ const seen = (seenUserSyntheticByContent.get(twinKey) ?? 0) + 1;
23799
+ seenUserSyntheticByContent.set(twinKey, seen);
23800
+ if ((windowSignals.userContents.get(twinKey) ?? 0) < seen) return true;
23799
23801
  if (typeof m.streamSeq !== "number" || historyMaxStreamSeq <= 0) return false;
23800
23802
  if (historyMaxStreamSeq >= m.streamSeq) return false;
23801
23803
  const lastPersisted = processedToUse[processedToUse.length - 1];
23802
- if (lastPersisted && lastPersisted.role === "user" && lastPersisted.content === m.content) return false;
23804
+ if (lastPersisted && userTwinKey(lastPersisted) === twinKey) return false;
23803
23805
  return true;
23804
23806
  }
23805
23807
  let covered;
@@ -23846,10 +23848,10 @@ function computeHistoryPrepend(processedHistory, existingMessages) {
23846
23848
  for (let i = newEnd - 1; i >= 0; i--) {
23847
23849
  const pm = processedHistory[i];
23848
23850
  if (pm.role === "user") {
23849
- const text2 = userText(pm);
23850
- const left = text2 === "" ? 0 : userTwinsLeft.get(text2) ?? 0;
23851
+ const key = userTwinKey(pm);
23852
+ const left = key === "" ? 0 : userTwinsLeft.get(key) ?? 0;
23851
23853
  if (left === 0) continue;
23852
- userTwinsLeft.set(text2, left - 1);
23854
+ userTwinsLeft.set(key, left - 1);
23853
23855
  twinIndices.add(i);
23854
23856
  } else if (pm.role === "assistant") {
23855
23857
  const keys = turnRequestKeys(pm.content);
@@ -26468,4 +26470,4 @@ export {
26468
26470
  buildStreamFrames,
26469
26471
  EmbeddableChat
26470
26472
  };
26471
- //# sourceMappingURL=chunk-H7ORPMRH.js.map
26473
+ //# sourceMappingURL=chunk-4NKKPGDN.js.map