@paymanai/payman-typescript-ask-sdk 4.0.5 → 4.0.6
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/index.d.mts +14 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +55 -11
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +55 -11
- package/dist/index.mjs.map +1 -1
- package/dist/index.native.js +55 -11
- package/dist/index.native.js.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -964,9 +964,28 @@ function buildRequestBody(config, userMessage, sessionId, options) {
|
|
|
964
964
|
sessionOwnerId,
|
|
965
965
|
sessionOwnerLabel: sessionOwner?.name || void 0,
|
|
966
966
|
sessionAttributes,
|
|
967
|
-
analysisMode: options?.analysisMode
|
|
967
|
+
analysisMode: options?.analysisMode,
|
|
968
|
+
locale: resolveLocale(config.locale),
|
|
969
|
+
timezone: resolveTimezone(config.timezone)
|
|
968
970
|
};
|
|
969
971
|
}
|
|
972
|
+
function resolveLocale(configured) {
|
|
973
|
+
if (configured && configured.trim().length > 0) return configured.trim();
|
|
974
|
+
if (typeof navigator !== "undefined") {
|
|
975
|
+
const navLocale = navigator.language;
|
|
976
|
+
if (navLocale && navLocale.length > 0) return navLocale;
|
|
977
|
+
}
|
|
978
|
+
return "en-US";
|
|
979
|
+
}
|
|
980
|
+
function resolveTimezone(configured) {
|
|
981
|
+
if (configured && configured.trim().length > 0) return configured.trim();
|
|
982
|
+
try {
|
|
983
|
+
const zone = Intl.DateTimeFormat().resolvedOptions().timeZone;
|
|
984
|
+
if (zone && zone.length > 0) return zone;
|
|
985
|
+
} catch {
|
|
986
|
+
}
|
|
987
|
+
return "UTC";
|
|
988
|
+
}
|
|
970
989
|
function buildStreamingUrl(config) {
|
|
971
990
|
const endpoint = config.api.streamEndpoint || DEFAULT_STREAM_ENDPOINT;
|
|
972
991
|
const stage = config.stage || "DEV";
|
|
@@ -1410,14 +1429,24 @@ function useStreamManagerV2(config, callbacks, setMessages, setIsWaitingForRespo
|
|
|
1410
1429
|
}
|
|
1411
1430
|
|
|
1412
1431
|
// src/hooks/useChatV2.ts
|
|
1432
|
+
function getStoredOrInitialMessages(config) {
|
|
1433
|
+
if (!config.userId) return config.initialMessages ?? [];
|
|
1434
|
+
const stored = chatStore.get(config.userId);
|
|
1435
|
+
if (stored.length > 0) return stored;
|
|
1436
|
+
if (config.initialMessages?.length) {
|
|
1437
|
+
chatStore.set(config.userId, config.initialMessages);
|
|
1438
|
+
return config.initialMessages;
|
|
1439
|
+
}
|
|
1440
|
+
return [];
|
|
1441
|
+
}
|
|
1442
|
+
function getSessionIdFromMessages(messages) {
|
|
1443
|
+
return messages.find((message) => message.sessionId)?.sessionId;
|
|
1444
|
+
}
|
|
1413
1445
|
function useChatV2(config, callbacks = {}) {
|
|
1414
|
-
const [messages, setMessages] = useState(() =>
|
|
1415
|
-
if (config.userId) return chatStore.get(config.userId);
|
|
1416
|
-
return config.initialMessages ?? [];
|
|
1417
|
-
});
|
|
1446
|
+
const [messages, setMessages] = useState(() => getStoredOrInitialMessages(config));
|
|
1418
1447
|
const [isWaitingForResponse, setIsWaitingForResponse] = useState(false);
|
|
1419
1448
|
const sessionIdRef = useRef(
|
|
1420
|
-
|
|
1449
|
+
getSessionIdFromMessages(getStoredOrInitialMessages(config)) ?? config.initialSessionId ?? void 0
|
|
1421
1450
|
);
|
|
1422
1451
|
const prevUserIdRef = useRef(config.userId);
|
|
1423
1452
|
const callbacksRef = useRef(callbacks);
|
|
@@ -1661,7 +1690,7 @@ function useChatV2(config, callbacks = {}) {
|
|
|
1661
1690
|
setIsWaitingForResponse(active.isWaiting);
|
|
1662
1691
|
}
|
|
1663
1692
|
return unsubscribe;
|
|
1664
|
-
}, []);
|
|
1693
|
+
}, [config.userId]);
|
|
1665
1694
|
useEffect(() => {
|
|
1666
1695
|
if (!config.userId) return;
|
|
1667
1696
|
const toSave = messages.filter((m) => !m.isStreaming);
|
|
@@ -1669,6 +1698,13 @@ function useChatV2(config, callbacks = {}) {
|
|
|
1669
1698
|
chatStore.set(config.userId, toSave);
|
|
1670
1699
|
}
|
|
1671
1700
|
}, [messages, config.userId]);
|
|
1701
|
+
useEffect(() => {
|
|
1702
|
+
if (!config.userId || activeStreamStore.has(config.userId)) return;
|
|
1703
|
+
if (!config.initialMessages?.length || messagesRef.current.length > 0) return;
|
|
1704
|
+
chatStore.set(config.userId, config.initialMessages);
|
|
1705
|
+
setMessages(config.initialMessages);
|
|
1706
|
+
sessionIdRef.current = getSessionIdFromMessages(config.initialMessages) ?? config.initialSessionId;
|
|
1707
|
+
}, [config.initialMessages, config.initialSessionId, config.userId]);
|
|
1672
1708
|
useEffect(() => {
|
|
1673
1709
|
const prevUserId = prevUserIdRef.current;
|
|
1674
1710
|
prevUserIdRef.current = config.userId;
|
|
@@ -1680,11 +1716,19 @@ function useChatV2(config, callbacks = {}) {
|
|
|
1680
1716
|
setIsWaitingForResponse(false);
|
|
1681
1717
|
setUserActionState({ request: null, result: null, clearOtpTrigger: 0 });
|
|
1682
1718
|
} else if (config.userId) {
|
|
1683
|
-
const
|
|
1684
|
-
|
|
1685
|
-
|
|
1719
|
+
const active = activeStreamStore.get(config.userId);
|
|
1720
|
+
if (active) {
|
|
1721
|
+
setMessages(active.messages);
|
|
1722
|
+
setIsWaitingForResponse(active.isWaiting);
|
|
1723
|
+
sessionIdRef.current = getSessionIdFromMessages(active.messages) ?? config.initialSessionId;
|
|
1724
|
+
return;
|
|
1725
|
+
}
|
|
1726
|
+
const nextMessages = getStoredOrInitialMessages(config);
|
|
1727
|
+
setMessages(nextMessages);
|
|
1728
|
+
sessionIdRef.current = getSessionIdFromMessages(nextMessages) ?? config.initialSessionId;
|
|
1729
|
+
setIsWaitingForResponse(false);
|
|
1686
1730
|
}
|
|
1687
|
-
}, [config
|
|
1731
|
+
}, [config]);
|
|
1688
1732
|
return {
|
|
1689
1733
|
messages,
|
|
1690
1734
|
sendMessage,
|